JSLint - a static javascript syntax analyzer(JS语法静态分析优化工具)
Object-C有一个静态语法分析工具,可以在程序被编译之前,分析出程序出错或者不够好的地方,Javascript也有这样的工具,那就是JSLint。
这个工具的作者就是大名鼎鼎的Douglas Crockford
一、初识JSLint
Lint是一个C语言的语法静态分析调优程序,其在wiki上的定义如下:
In computer programming, lint was the name originally given to a particular program that flagged some suspicious and non-portable constructs (likely to be bugs) in C language source code. The term is now applied generically to tools that flag suspicious usage in software written in any computer language.
简而言之,就是在程序编译或者执行之前,帮你找到语法错误,可能的Bug与需要优化的地方,以节省你的时间与精力。
二、如何使用JSLint
首先,转到JSLint的官方网站上去http://jslint.com/
然后,在页面下方有一些选项,是附加的检查条件。点击“The Good Parts”按钮,即应用作者推荐的检查条件。
最后,在上方的大大的文本框上粘贴上你的Javascript代码,点JSLint按钮,很快代码“体检”结果就出来了。
三、实战演练,请尽量找出下面代码中写的不对或者不够好的地方。
如果你认为自己找完了,拉到下面看看JSLint的分析结果吧,然后给自己打个分。
看到了吧,虽然看上去是正确的,但是存在着潜在的问题,例如:
- Object a的属性列表后面不应该再加逗号,chrome和firefox会忽略这个逗号,但是IE会报错。
- a和b赋值语句后面都没有分号,如果你使用js代码混淆器来混淆你的代码,这可是个很严重的问题。
- for语句在遍历一个Object的属性时,没有检查此Object是否“拥有”这个属性,这可能会违背你的真实意图,因为如果不加检查,Object的原型中的属性也会被拷贝到b中去,这可能是你不愿意看到的,下面代码演示这个可能存在的Bug。
修改后的代码
怎么样,JSLint是不是感觉到很强大,很有用呢?
没有评论:
发表评论