新JSLint:"意外'.'." 说明

Har*_*San 0 javascript jslint

使用新的JSLint,我得到以下代码的以下错误:

出乎意料的'.'.

return (elem || document).querySelector(selector);
Run Code Online (Sandbox Code Playgroud)

这看起来很奇怪,因为我无法想象为什么(something || something-else).method-call符号会不理想.

有谁知道为什么新的JSLint会抛出这个错误(当旧的错误从未发生时)?
谢谢.

T.J*_*der 6

它可能是新版本中的错误.它可以工作,如果您将其更改为:

var source = elem || document;
return source.querySelector(selector);
Run Code Online (Sandbox Code Playgroud)

所以要么它是一个错误,要么Crockford希望你将||表达式排除在外.(有一个争论:例如,如果你在调试器中单步执行它,它会更容易看到将要使用的内容.但是如果这是一个新规则,那么开始失败的大量代码是巨大的. ..)


有很多替代品的JSLint,包括JSHint.它最初(很久以前)是JSLint的一个分支,但它已经看到了大量的开发并且以自己的方式出现了.