新的 JSLint:"Unexpected '.'." 解释

New JSLint: "Unexpected '.'." explanation

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

Unexpected '.'.

return (elem || document).querySelector(selector);

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

有谁知道为什么新的 JSLint 抛出这个错误(而旧的 JSLint 从来没有)?
谢谢

可能是新版本的bug。如果你把它改成这样就可以了:

var source = elem || document;
return source.querySelector(selector);

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


JSLint 有很多替代品,包括 JSHint。它最初是(long 时间以前)JSLint 的一个分支,但后来经历了巨大的发展并走上了自己的道路。