23
我最近收到的评论有关的JSLint问我的博客文章之一,为什么JSLint的扔了一个错误有以下:产生表达式在JavaScript三元运算符和JSLint的
s === "test" ? MyFunc() : MyFunc2();
错误是:
“”预计分配或功能 调用,而是看到一个表达式。“
很明显的JSLint在这里期待的分配,财产以后更像是:
var y = (s === "test") ? MyFunc() : MyFunc2();
但是,我实在不明白的问题,第一个例子。三元运营商是否只能用于任务是真的吗?
我在JSLint.com上看不到任何东西,在JavaScript:The Good Parts中也没有任何明显的表现。并且,社区分支JSHint中也报告了相同的错误。
有人吗?
+1从强大的Raynos答案。我必须承认,我有时使用速记表达而不是“if”陈述。虽然很少三元,通常就像'match && doSomethingWith(match)'。但是那只是因为我很懒:P一般来说,我认为JSLint抱怨说当个人偏好发挥作用时你可以忽略一些事情。 – 2011-06-06 07:43:36
@Andy E:我意识到JSLint中有部分个人喜好会发挥作用,但有兴趣看到JSHint也重复了同样的信息。尽管如此,知道总是很好的。 – 2011-06-06 07:50:32
@JamesWiseman JSHint允许你定制一个_lot_。有一个'expr'选项可以禁止这些警告。在我看来,简单的'||','&&'或'?'可以使用,但我可以明白为什么它们可能会变坏。 – Raynos 2011-06-06 08:08:45