使用jshint校验javascript文件

2012-11-04 17:12

简介

jshint和csshint类似,只是前者是校验js文件的,下面是jshint的校验参数的简单介绍。

使用

建议安装node版本的,


$ npm install -g

然后


$ jshint jquery.js

即可。

Options

(以下内容是从http://www.jshint.com/docs/翻译过来的,以原文为准)

JShint中的校验有2种,一种是强制模式,一种是放松模式.强制模式是让校验更加严格, 而放松模式是为了忽略某些警告.这样做可能会引起困惑,那么只需要记住一点:将强制模式 的选项设置为true表示显示此警告,而将放松模式设置为true表示忽略此警告.

强制选项

以下选项设置为true或指定的值,则会在校验时显示此警告(默认不显示警告).

bitwise

JavaScript中很少使用位操作符,而且容易和&&混淆

camelcase

强制变量名使用驼峰式风格或者大写字母加下划线风格

curly

总是把条件或者循环写在大括号里

eqeqeq

总是使用===和!==,而不是==和!=

forin

在for in循环里,必须使用hasOwnProperties过滤元素

immed

使用立即执行的函数时不要把他们包在括号里

indent

制定代码的缩进宽度 /* jshint indent:4 */

latedef

变量应该先定义,再使用

newcap

构造函数的名称应该以大写字母开头

noarg

禁止使用arguments.caller和argument.callee

noempty

不要使用空代码块

nonew

使用构造函数的副作用,比如new xxx();,不把它赋值给一个变量

plusplus

不建议使用++和--

quotmark

引号的风格,true表示不要求一致性,singie表示只使用单引号,double表示只使用双引号

undef

禁止使用不声明的变量

unused

禁止声明变量但不使用

strict

要求代码运行于Strict mode

trailing

禁止代码行最后留有空格

maxparams

设置函数最多允许的参数个数 /* jshint maxparams:3 */

maxdepth

设置大括号最大的嵌套次数 /* jshint maxdepth:2 */

maxstatements

设置每个函数允许的最多语句

maxcomplexity

参考这里

maxlen

设置每行代码最大长度

可选选项

以下选项设置为true表示忽略此警告(默认显示警告).

asi

是否要求行尾写分号

boss

是否允许在比较时出现赋值语句

debug

是否允许出现debugger

eqnull

是否允许== null语句

es5

是否允许使用es5的新特性

esnext

是否允许使用ES.next的新特性

evil

是否允许出现evil

expr

期望出现赋值语句或函数调用时,出现表达式是否警告

funcscope

是否允许在流程控制里声明变量

globalstrict

是否允许使用global strict mode

iterator

是否允许使用__iterator__属性

lastsemic

是否允许遗失最后的分号

laxbreak

是否允许不安全的断行

laxcomma

是否允许object中的属性逗号前置风格

loopfunc

是否允许在循环里使用函数

multistr

是否允许多行字符串

proto

是否允许使用__proto__属性

scripturl

是否允许url里出现script,比如javascript:...

smarttabs

是否允许tab和空格混用

shadow

是否允许声明其他地方已经声明过的变量

sub

建议使用persion.name而不是persion['name']

supernew

是否允许使用诡异的构造器比如new function() { … }和new Object

validthis

是否允许在strict mode的非构造函数中使用this

环境

以下选项打开表示是否是运行在所指的环境下.

browser

是否是浏览器环境

couch

是否是CouchDB环境

devel

是否是开发环境

dojo

是否使用dojo

jquery

是否使用jQuery

mootools

是否使用mootools

node

是否是node环境

nonstandard

是否使用非标准方法,比如escape和unescape

prototypejs

是否使用Prototyps

rhino

是否是Rhino环境

worker

是否使用Web Worker

wsh

是否是Windows Script Host环境

yui

yui 是否使用yui

Legacy

nomen

是否禁止使用_下划线变量

onevar

是否只允许使用一个var

passfail

是否第1个错误出处中断

white

强制要求严格的空白