我真的喜欢对齐吗?以及我的三元运算符,当它们不合适时,就像这样:
var myVar = (condition
? ifTrue
: ifFalse
);
然而,JSHint抱怨:
''之前坏线断线?
为什么JSHint会收到此警告?是否有任何讨厌(如分号插入等)它会保护我免受攻击,还是可以安全地更改我的JSHINT配置以忽略它?
答案 0 :(得分:24)
更新:此答案现已过时。显然,克罗克福德改变了主意;)
请参阅@ CheapSteaks的answer了解更新。
<击> 撞击>
<击>将断点放在操作符后面,最好是逗号后面。休息 在运算符降低了复制粘贴错误的可能性之后 将被分号插入掩盖。
所以:
// this is ok
var myVar = (condition ?
ifTrue :
ifFalse
);
如果您通过JSHint运行此示例代码,则会传递:
// this is ok
var myVar = (1==1 ?
true :
false
);
击> <击> 撞击>
答案 1 :(得分:19)
这有效并且当然有效。它在更复杂的用例中尤其有用,例如嵌套的用例。
var a = test1
? b
: test2
? c
: d;
答案 2 :(得分:13)
三元运算符可能在视觉上混乱,所以?问号 总是开始一行并将缩进增加4个空格,并且: 冒号总是开始一条线,与?对齐?问号。该 条件应该用parens包裹。
var integer = function (
value,
default_value
) {
value = resolve(value);
return (typeof value === "number")
? Math.floor(value)
: (typeof value === "string")
? value.charCodeAt(0)
: default_value;
};
答案 3 :(得分:4)
您应该将操作员放在行尾。这样就可以更清楚地看到这一声明继续下一行。