Node.js 用 JSHint 帮助提高代码质量

alex_cheng · 2014年06月25日 · 最后由 luikore 回复于 2014年06月25日 · 7766 次阅读

(转自 http://www.alex-cheng.me/?p=110) JSHint 是社区发起的开源项目。目的是用来检查 JavaScript 中代码的错误和潜在问题,以及不符合既定代码规范的地方。代码规范是可定制的,也就是说,开发组织可以根据需要在 JSHint 中定制自己的规范。JSHint 也提供在线版本。它的官网是:http://www.jshint.com/

JSHint 可以检查出一些简单的语法错误,比如少一个;号的情况,也比如引用了一个未定义的变量的情况。如果要自定义代码规范,只要修改.jshintrc 这个文件就行了。

要安装 JSHint,可以有很多种途径,命令行运行 jshint 是一种方法,集成到编辑器中或者 IDE 中也是一种很好的使用 jshint 的途径。目前 JSHint 可以集成的编辑器或 IDE 有:VIM, Emacs, Sublime Text, TextMate, Visual Studio, Brackets 等等。还有一种在线的使用方式,就是访问网址http://www.jshint.com/,然后把代码贴到左边(删除已有的示例代码)。

除此之外还有一些基于 JSHint 的有用的工具,例如:

  • jshintr 只要在 js 代码的网址后面的.js 替换成.jshint,就能够看到此 js 代码的 JSHint 的检查结果。但是我没用过,因为需要部署 jshintr 的服务器端 node 代码。

  • FixMyJS 用于自动修复 JavasScript 的简单错误,例如少了个;号,变量定义了多次等。 但我试用了一下,有个大问题是 FixMyJS 总是删除空行,但是代码之间的空行是我故意留出来的。

  • jshint-gem JSHint on Rails

虽然 JSHint 检查的是一些简单的代码缺陷,但并不能检查出程序的逻辑错误。比如以下代码错误用 JSHint 就检查不出来。 for(var i=1; i < 103; ++i) { for(var i=1; i < 100; ++i) { console.log(i); } }

但是不管怎样,JSHint 把程序员从繁琐低级的代码检查工作中解脱出来,这样可以有更多的精力做创新的事情。作为程序员,花时间去加一个;号这种没意义的事情最好就让计算机做吧。

vim 用户可以用 https://github.com/scrooloose/syntastic 进行整合。

直接用 coffeescript 就好了,JSHint 提示的问题基本都不会出现

需要 登录 后方可回复, 如果你还没有账号请 注册新账号