1.JSLint简介
JSLint定义了一组编码约定,这比ECMA定义的语言更为严格。这些编码约定汲取了多年来的丰富编码经验,并以一条年代久远的编程原则 作为宗旨:能做并不意味着应该做。JSLint会对它认为有的编码实践加标志,另外还会指出哪些是明显的错误,从而促使你养成好的 JavaScript编码习惯。
2.Notepad++安装JSLint插件
1.安装Notepad++(开发工具/ npp_V6.7.5_Installer.1426044595.exe,不要安装最新版的npp,使用jslint有bug)
2.安装JSLint插件
打开Notepad++,在插件-插件管理(Plugin Manager)中打开插件管理展示
在Available中选中JSLint并且Install,插件安装成功
3.JSlint的使用
3.1 操作
1.随意打开一个JS文件,然后选择 插件>>JSLint>>JSLint Current File。
在控制台也能进行快捷调试,在错误的地方右击选择Show能直接定位到错误所在地
jslint允许检验js等文件,将文件语言设置为javascript
3.2配置
因为jslint默认定义的规约很多,能全部做到自然更好。但实际我们可以根据项目需要,将规约放宽。
插件>>JSLint>>option 里面包括一些选项,按下图配置。
Predefindes说明:这里可以输入系统的一些全局变量,以减少错误提示。
目前有的全局变量:
showOpMsg,dojo,esri,jQuery,Ext,MyApp,getConfig,getLocalConfig,Highcharts,getCtrl,setConfig,setLocalConfig,showOpMs,BMap,transModelsToDatas,BMAP_NAVIGATION_CONTROL_LARGE,BMAP_ANCHOR_TOP_LEFT,BMAP_NORMAL_MAP,BMAP_SATELLITE_MAP, BMAP_HYBRID_MAP
3.3说明
JSLint可能会把一些结构方面的错误标志为可疑的编码实践,以下列出了其中一部分(完整的列表可以参考JSLint的文档)http://www.jslint.com/lint.html。
①JSLint要求所有代码行都以分号结束。尽管JavaScript确实允许将换行符作为行结束符,但一般认为这种做法是不明确的,而且是不好的编码风格。
②使用if和for的语句必须使用大括号把语句块括起来。
③不同于其他编程语言,在JavaScript中,块不会作为变量的作用域。JavaScript只支持函数级作用域。因此,JSLint只接受作为function、if、switch、while、for、do和try语句一部分的块,其他的块都会标志为错误。
④var只能声明一次,而且在使用之前必须声明。
⑤JSLint会把出现在return、break、continue或throw语句后面的代码标志为不可达的代码。这些语句后面必须紧跟一个结束大括号。
⑥结合Ext,常见的错误有缺少或者多了空格,函数中缺少use strict:Missing ‘use strict‘ statement.,{}未对齐,变量未定义,代码写在不是期望的位置等,这些大部分都可以在option里面配置是否验证。
⑦for in 语句
避免遍历原型链上所有属性,建议如下写法:
for(name in object) {
if(object.hasOwnProperty(name)) {
....
}
}
4.参考资料
1.在notepad++中使用jslint检查javascript代码
http://www.oschina.net/question/54100_25561
2.IBM文档(使用JSLint保证代码质量)
http://www.ibm.com/developerworks/cn/web/1105_linlin_jslint/
附-JSTool
JSTool是一款不错的js、json格式化工具。
在用JSLint规范代码前可使用notepad++插件JSTool 格式化代码,很方便。format一下代码,减少需要修改的错误的数量。