加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 创业 > 正文

如何编写高质量的Javascript代码(译)

发布时间:2018-09-21 11:37:46 所属栏目:创业 来源:站长网
导读:优越的Stoyan Stefanov在他的新书中(《 Java script Patterns》)先容了许多编写高质量代码的能力,好比停止行使全局变量,行使单一的var要害字,轮回式预存长度等等。 这篇文章不只仅从代码自己来思量怎样优化编码,也从代码的计划阶段来思量,包罗誊写A

优越的Stoyan Stefanov在他的新书中(《Javascript Patterns》)先容了许多编写高质量代码的能力,好比停止行使全局变量,行使单一的var要害字,轮回式预存长度等等。

这篇文章不只仅从代码自己来思量怎样优化编码,也从代码的计划阶段来思量,包罗誊写API文档,同事的review,行使JSLint。这些风俗都能辅佐你编写越发高质量的、更易于领略的、可维护的代码(让你的代码在多年之后仍使你引觉得傲)。

编写可维护的代码

软件的BUG修复必要耗费大量的精神。尤其今世码已经宣布之后,跟着时刻的增添,维护的本钱愈发的高。当你一发明BUG的时辰,就当即去修复,这时辰你的代码照旧热乎的,你也不必要回想,由于就是方才写好的。可是当你做了其他使命,险些完全健忘了这份代码,这时辰就必要:

  • 从头进修和领略题目
  • 领略代码是怎样办理题目的

其它一个题目是,在大项目可能大公司内里,常常是办理BUG的人不是发生BUG的人,并且也不是发明BUG的人。以是镌汰领略代码的时刻就是最重要的题目,无论这个代码是你本身早年写的照旧团队中的其他成员写的,由于我们都想去搞搞新的故意思的对象,而不是去维护那些个陈旧的代码。

尚有一个开拓中的广泛题目就是,每每读代码的时刻比写代码的时刻还要多。偶然辰你钻研一个题目,可以花整整一个下战书的时刻来思量代码的编写。这个代码其时是可以事变的,可是跟着开拓的举办,其他对象产生了很大的变革,这时辰也就必要你本身来从头检察修改编写代码。好比:

  • 尚有BUG没有办理
  • 添加了新的成果
  • 措施必要在新的情形中运行(好比一个新上市的赏识器)
  • 代码有题目
  • 代码必要重写由于修改了架构乃至要行使另一个说话

由于这些缘故起因,大概你其时一个下战书写好的代码,后头必要耗费几周的时刻来阅读。以是编写可维护的代码对付软件的乐成至关重要。

可维护的代码包罗:

  • 可读性
  • 持续性
  • 预见性
  • 看起来是一小我私人写的
  • 有文档

起码化全局变量

Javascript行使函数来约定浸染域。一个在函数内部声明的变量在外部是不行见的。以是,全局变量也就是声明在任何函数之外的可能没有被声明的变量。

Javascript中,在任何函数之外有个可会见的全局工具,每一个你建设的全局变量都是这个工具的一个属性。在赏识器中,为了利便,凡是用window来指代这个全局变量。下面的代码就是声名怎样建设一个全局变量:

myglobal = "hello"; // antipattern
console.log(myglobal); // "hello"
console.log(window.myglobal); // "hello"
console.log(window["myglobal"]); // "hello"
console.log(this.myglobal); // "hello

全局变量的题目

全局变量的题目在于,他在你的全部代码可能一个页面中都共享。他们在统一个定名空间下面,这凡是会造成变量名斗嘴–两个同名的变量,可是确实差异的用处。

凡是在一些页面中必要引入一些其他人的代码,好比:

  • 第三方的JS库
  • 告白搭档的剧本
  • 第三方的用户举动说明可能统计剧本
  • 差异的组件、按钮等等

插手个中一个第三方组件界说了一个全局变量:result。然后在你的措施中,也界说了一个全局变量result。最后的这个result会包围点之前的result,这样第三方的剧本就会遏制事变。

以是,为了对其他的剧本友爱,在一个页面中行使越少的全局变量越好。在后头会有一些要领来汇报你怎样镌汰全局变量,好比行使定名空间,可能自执行的匿名函数,可是最好的停止全局变量的要领就是行使var要害字来声明变量。

由于javascript的两个特征,建设一个全局变量很是的简朴。第一,你可以行使一个乃至没有声明的变量,第二,在javascript中,全部未声明的变量城市成为全局工具的一个属性(就像一个声明白的全局变量一样)。看看这个例子:

function sum(x,y){
     result = x + y;
     return result;
}

在这个代码中,result在没有被声明的环境下就被行使了,这个代码也能很好的事变,可是在挪用了这个函数之后,就会多一个名为result的全局变量,这是全部题目的来源了。

办理这个题目的步伐就是行使var:

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读