此片段的JSLint验证
1: function foo() {} 2: 3: foo(1 4: ); 5: 6: foo( 7: );
给出了这个错误:
Error: Problem at line 3 character 5: Line breaking error ')'. foo(1
这是一个JSLint错误吗?
这不是一个错误.JSLint不仅仅是语法检查:它强制执行某些编码约定.如果您在启用"Tolerate sloppy line breaking"选项的情况下重新验证,则不会出现错误.
从JSLint文档:
换行
作为对分号插入机制的进一步防御,JSLint期望只有在其中一个标点字符或运算符之后才能打破长语句:
,.; :{}([= <>?!+ - */%〜^ |&==!= <=> = + = - =*=/=%= ^ = | =&= << >> || && ===!== << = >> = >>> >>> =
JSLint不期望在标识符,字符串,数字,更接近或后缀运算符后看到长语句被破坏:
)] ++ -
JSLint允许您打开Tolerate sloppy line breaking(laxbreak)选项.
分号插入可以屏蔽复制/粘贴错误.如果你总是在运算符之后断行,那么JSLint可以更好地找到它们.