我知道这个 if 语句的正常用例是例如
var string = boolean ? "this" : "that";
我在我的编辑器中使用 jhint,当我尝试类似的东西时
boolean ? array.push("this") : array.slice("that",1);
jshint throws (W030) “期望一个赋值或函数调用,而不是看到一个表达式”
到目前为止,代码一直运行良好,但也许我只是走运。
所以我的问题是,为什么我不应该使用这种模式,还有什么可以替代呢?因为写作
if(boolean){
array.push("this");
} else {
array.splice("that",1);
}
如此简短的说明真让我毛骨悚然。
谢谢。
最佳答案
可以将三元运算符包装在 void operator
中像这样:
void(cond ? expr1 : expr2);
这达到了预期的结果并通过了 JSHint。参见 JSFiddle然后单击 JSHint 按钮。
但是,我推荐以下语法:
if (cond) {
expr1;
} else {
expr2;
}
因为它更具可读性。仅仅因为 JavaScript 让你做奇怪的事情并不意味着你应该这样做。
关于javascript - If true … else 速记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25460249/