【问题标题】:New JSLint: "Unexpected '.'." explanation新的 JSLint:“意外的 '.'。”解释
【发布时间】:2015-07-04 17:50:09
【问题描述】:

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

意外的'.'。

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

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

有谁知道为什么新的 JSLint 会抛出这个错误(而旧的从未出现过)?
谢谢。

【问题讨论】:

  • JSLint 不太理想。
  • 眯着眼,什么更理想?
  • jshint.com 不包含 Crockford 的观点。
  • JSHint 不会抛出错误;那很好。谢谢。
  • @jfriend00:不。它希望您为括号中的位使用变量。 var foo = elem || document; return foo.querySelector(selector); 这是斜眼所暗示的另一个例子:Crockford 的意见。

标签: javascript jslint


【解决方案1】:

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

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

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


JSLint 有很多替代品,包括JSHint。它最初是(很久之前的)JSLint 的一个分支,但它已经经历了巨大的发展并走上了自己的路。

【讨论】:

  • T.J.,非常感谢您。这正是我一直在寻找的:错误的原因和简单的解决方案。话虽如此,我也很喜欢大家的简单“不要使用 JSLint;使用 JSHint”的回应。有一段时间(使用较旧的,我认为 JSLint 更宽松的版本),我将 JSLint 跟踪到 T 并确保没有错误。但是,我不再有这种感觉了,尤其是使用较新版本的 JSLint。诸如不允许 for (in) 循环之类的事情,上面的问题,如果您使用 arguments 会引发错误等,只是让它过于极端。我也...
  • 学会了更多地走下去,“JSLint 是一个很棒的工具,但我并不总是必须 100% 同意 Crockford。”只要我理解为什么会抛出任何错误并且我可以忍受,我认为这是可以接受的。
猜你喜欢
  • 2016-05-21
  • 2012-02-29
  • 2017-05-22
  • 1970-01-01
  • 2015-08-11
  • 2016-03-01
  • 2015-12-15
  • 2012-06-23
相关资源
最近更新 更多