ESLint 规则详解(二)

 

接上篇 ESLint 规则详解(一)javascript

前端界大神 Nicholas C. Zakas 在 2013 年开发的 ESLint,极大地方便了你们对 Javascript 代码进行代码规范检查。这个工具包含了 200 多条 Javascript 编码规范且运行迅速,是几乎每一个前端项目都必备的辅助工具。但是,这么多规则,每一个规则的设计出发点是什么,咱们该如何选择适合本身项目的规则,又成了新问题。前不久,我所在的项目开始对前端代码进行代码规范的要求,因而咱们详细梳理了 eslint 中的 230 个规则。我摘录了其中一些比较重要或特别的规则列在这里,但愿能对你们的工做有所帮助。html

 

  1. no-sparse-arrays前端

    使用代码质量检查工具的一个重要目的就是为了提升代码的可读性,或者说是下降其余人阅读并理解代码的难度,这条规则就是这样。当你看到这样一段代码 var userList = ['Tiger', 'Kate', , 'Mike']; 你真的很难肯定原来写这段代码的人是否是故意要在数组中留下一个 undefined 元素,毕竟这样写并无语法上的错误。这条规则的目的就是禁止经过这种方式在数组中插入 undefined 元素,由于这种写法太有迷惑性了。java

     

  2. no-extra-bind程序员

    若是你对 javascript 中的 this 变量有所了解,你必定也知道 bind 方法的做用,它能够很方便的帮咱们修改方法执行时的上下文环境,但事实上有些时候并不须要使用 bind。若是你在一些不须要使用 bind 的地方也用 bind 来保证方法执行时的上下文环境,这会让代码执行的效率变低。因此,启用这条规则,能够帮你避免没必要要的性能损失。数组

     

  3. no-useless-call微信

    和上一条规则相似,call 和 apply 也是帮助咱们修改上下文环境的好工具,但咱们应该只在须要修改上下文的时候才去使用这两个方法,若是你的代码检查工具发现你修改后的上下文和函数或方法原始的上下文相同,它就会给出提示。app

     

  4. yodaless

    yoda 表达式实际上是用写争议的。有人以为 if ('red' == color)  这样的写法能够避免程序员不当心把 == 写成了 =,但如前篇所说,咱们用过在代码中禁用 ==,一概换成 ===,同时在代码检查工具的帮助下,把 == 写成 = 的可能性其实不大。而同时这样的写法在阅读时也显得比较别扭,因此我我的以为仍是禁用 yoda 表达式比较好。函数

     

  5. no-delete-var

    delete 操做符只能删除对象上的属性,并不能删除当前上下文中的某个变量,虽然代码不会报错,但极可能实际运行的结果和开发人员设想的不一样,因此,应该明确禁止删除变量的操做。

     

  6. no-undef

    禁用未声明的变量。javascript 异常灵活,以致于你能够在没有声明一个变量的时候直接给他赋值,好比 t = 'test message',但这样的写法倒是很是危险的,由于这种写法虽然会自动生命变量 t,但他的做用域却和用 var 声明的变量做用域不一样,t 变量的做用域在全局变量上,因此,不用 var 直接声明并给变量赋值,常常致使意料以外的程序 bug。

     

  7. no-new-require

    当咱们使用 CommonJS 的包管理规范时,常常用 require 引入一些依赖,当咱们引入的依赖是一个类定义函数时,直接在 require 上进行 new 操做极可能会引发误解。好比 var tiger = new require('User'); 和 var tiger = new (require('User')); 因此,仍是禁用这种写法比较好。

 

最后附上 ESLint 规则列表,详细列出了每条规则的名称,官方是否推荐开启,以及每条规则是否可以用 --fix 参数自动修复。 点击下载

 

如需转载,请注明转自:http://www.cnblogs.com/silenttiger/p/6855604.html

 

欢迎关注个人微信公众号:老虎的小窝

相关文章
相关标签/搜索