7

此代码段的 JSLint 验证

1: function foo() {}
2: 
3: foo(1
4: );
5: 
6: foo(
7: );

给出这个错误:

错误:

第 3 行字符 5 处的问题:换行错误 ')'。

富(1

这是一个 JSLint 错误吗?

4

1 回答 1

13

这不是一个错误。JSLint 不仅仅是语法检查:它强制执行某些编码约定。如果您在启用“容忍马虎换行”选项的情况下重新验证​​,您将不会收到错误消息。

来自JSLint 文档

换行

作为对分号插入机制的进一步防御,JSLint 期望长语句仅在以下标点字符或运算符之一之后被破坏:

, . ; : { } ( [ = < > ? ! + - * / % ~ ^ | & == != <= >= += -= *= /= %= ^= |= &= << >> || && === !== <<= >>= >>> >>>=

JSLint 不希望在标识符、字符串、数字、更接近或后缀运算符之后看到长语句中断:

) ] ++ --

JSLint 允许您打开 Tolerate sloppy line break (laxbreak) 选项。

分号插入可以掩盖复制/粘贴错误。如果你总是在运算符后面换行,那么 JSLint 可以更好地找到它们。

于 2009-02-18T23:14:11.420 回答