use*_*851 3 javascript if-statement shorthand
我知道这个if语句的正常用例是例如
var string = boolean ? "this" : "that";
Run Code Online (Sandbox Code Playgroud)
我在编辑器中使用jhint,当我尝试类似的东西时
boolean ? array.push("this") : array.slice("that",1);
Run Code Online (Sandbox Code Playgroud)
jshint抛出(W030)"预期赋值或函数调用,而是看到一个表达式"
到目前为止,代码总是很好,但也许我只是幸运.
所以我的问题是,为什么我不应该使用这种模式,什么是另类?因为写作
if(boolean){
array.push("this");
} else {
array.splice("that",1);
}
Run Code Online (Sandbox Code Playgroud)
对于这么短的指示真的给了我毛骨悚然.
谢谢.
可以将三元运算符包装在void operator这样的内容中:
void(cond ? expr1 : expr2);
Run Code Online (Sandbox Code Playgroud)
这实现了期望的结果并通过了JSHint.请参阅JSFiddle并单击JSHint按钮.
但是,我建议使用以下语法:
if (cond) {
expr1;
} else {
expr2;
}
Run Code Online (Sandbox Code Playgroud)
因为它更具可读性.仅仅因为JavaScript让你做出奇怪的事情并不意味着你应该这样做.
| 归档时间: |
|
| 查看次数: |
425 次 |
| 最近记录: |