【问题标题】:JSLint warns about ternary operatorJSLint 警告三元运算符
【发布时间】:2016-05-06 03:40:06
【问题描述】:

我在 JavaScript 中有以下代码:

var a = num ? 5 : "five";

代码似乎可行。但是 JSLint 会这样警告:

#2 Expected '?' at column 9, not column 15.
var a = h ? 5 : "qwerty"; // Line 10, Pos 15  
#3 Expected ':' at column 9, not column 19.
var a = h ? 5 : "qwerty"; // Line 10, Pos 19

那么问题是什么?如何禁用此类警告?

【问题讨论】:

  • 你的缩进是否正确?在网上找到这个:"With JSLint you'll get an "Expected '{a}' at column {b}, not column {c}" error any time an incorrect indentation width is found."
  • 看来您应该在此处添加更多代码,目前,您的? 位于11 列。
  • 当我把它放在行首时:#2 Undeclared 'h'。变量 a = h ? 5:“qwerty”; // 第 4 行,位置 9 #3 预期为“?”在第 5 列,而不是第 11 列。 var a = h ? 5:“qwerty”; // 第 4 行,Pos 11 缩进是 1:1,就像问题一样。

标签: javascript ternary-operator jslint


【解决方案1】:

它的意见是:

三元运算符在视觉上可能会让人困惑,所以?问号和 : 冒号总是以一行开头,缩进增加 4 个空格。

变量 a = h ? 5 : "qwerty";

修正要么遵守规则,要么打勾混乱的空白。

【讨论】:

  • 你能举个例子吗?如果是这样,将删除我的答案......两者都没有意义。
  • @JamesThorpe 继续并将您的示例添加到此答案中......猜猜你也可以,希望这不是太具有侵略性。它确实有助于解释 JSLint 指令的要求。
  • @ruffin 对我来说很好,虽然我个人不喜欢在帖子不是 CW 时进行这些编辑 :)
  • @JamesThorpe 回复:之前,现在已删除,评论——这里最糟糕的部分是,一个人的意见改变了 同样的纯粹主观决定。我真的很喜欢 JSLint,而且 Crockford 还没有错,但是在多行上更改为多个 vars,每个变量声明一个,然后这个(这也是相当新的)正在推动我有点笨。 :(
  • @JamesThorpe 是的,我通常也不会,但是你们俩都在几分钟之内,我讨厌看到决斗的正确答案都缺少 [几乎微不足道,但很有用] 其他的一部分。今天,我猜我是your Harvey Keitel。
猜你喜欢
  • 2016-11-08
  • 2011-09-09
  • 1970-01-01
  • 2018-09-10
  • 2015-01-05
相关资源
最近更新 更多