javascript - If true … else 速记

标签 javascript if-statement shorthand

我知道这个 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/

相关文章:

Javascript 替换为 RegExp 重复本身?

php if 语句具有两个条件之一 if( a < b) or (b=0)

Powershell 如果格式化

c# - 如果对象不为空,则将对象添加到列表的简写

css - 在什么情况下速记 CSS 属性需要用空格分隔普通组件?

javascript - 如何减少 JavaScript 中的 if 语句检查

javascript - 做一个可扩展的页脚

javascript - Fabric js : SVG cannot import from url

javascript - 如何让我的可迭代值与 React 和 Redux 保持循环?

python - Python中if语句的求值顺序