hug*_*omg 32 javascript jshint
我真的喜欢调整?以及我的三元运算符,当它们不适合一条线时,如下所示:
var myVar = (condition
? ifTrue
: ifFalse
);
Run Code Online (Sandbox Code Playgroud)
然而,JSHint抱怨:
在"?"之前坏线断线
JSHint为什么会有此警告?是否有任何讨厌(如分号插入等)它是在保护我,还是我可以安全地更改我的JSHINT配置以忽略它?
Mrc*_*ief 24
更新:这个答案现在已经过时了.显然,克罗克福德改变了主意;)
请参阅@ CheapSteaks的更新答案.
Per Crockford:
在操作符之后放置中断,最好在逗号之后.在运算符之后的中断减少了分号插入掩盖复制粘贴错误的可能性.
所以:
// this is ok
var myVar = (condition ?
ifTrue :
ifFalse
);
Run Code Online (Sandbox Code Playgroud)
如果您通过JSHint运行此示例代码,则会传递:
// this is ok
var myVar = (1==1 ?
true :
false
);
Run Code Online (Sandbox Code Playgroud)
pim*_*vdb 20
这有效并且当然有效.它在更复杂的用例中尤其有用,例如嵌套的用例.
var a = test1
? b
: test2
? c
: d;
Run Code Online (Sandbox Code Playgroud)
Che*_*aks 13
Per Crockford
三元运算符可能在视觉上混乱,所以?问号始终开始一行并将缩进增加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;
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14380 次 |
| 最近记录: |