我经常看到和使用这样的代码:
var myvar = (1 < 2) ? 3 : 4 ; //if 1 < 2 then myvar = 3, else = 4但我最近刚刚看到一个正在执行代码的代码,就像某种if(){}else{}的替代品。
示例:
(1 < 2) ? alert("example1") : alert("example2");我的第一个想法是,“哇,这就像缩短了6-7个字符”,“无限的可能性”或“这让我的一天”。
我的问题:
现在,我将继续以正常的方式使用它,我担心如果我开始使用它来执行代码片段可能无法工作。
发布于 2012-01-06 04:28:44
也有一些例外。你不能用:
breakcontinueif、for、while、do或try这样的块例如。更重要的是,它会扰乱你的操作顺序:
x < 3 ? l = true : r = true; // Syntax error, = has lower precedence than ?:但这不是不去做的原因,而是因为它很丑。哪一个对你来说更清楚,这个:
if(i > 5) {
alert('One');
} else {
alert('Two');
}或
i > 5 ? alert('One') : alert('Two');?不太对,是吗?实际上,保存字符从来都不是做任何事情的理由;否则就不会有注释或空格。一个好的小型机,如谷歌关闭编译器,将自动转换这些为您在可能时,还有很多其他地方可以保存。最后,它只是你觉得最方便和最可读的东西。
另外,如果您最终需要break、continue等,那么它将是相当不一致和不吸引人的代码。
发布于 2012-01-06 04:26:08
这个东西没有错误,使用安全吗?(比如,里面有很多代码,还有嵌套的东西)
是。但是,它中的代码越多,它的可读性就越低。
我更喜欢用它(条件运算符)来做简短、简洁的陈述。为了提高可读性和可维护性,任何更复杂的东西都值得使用if/else。
发布于 2012-01-06 04:27:41
你指的是三元操作符。它通常用于使用以下简单字符串设置变量:
var phone = old ? "blackberry" : "iPhone"比使用if简单得多:
var phone = "iphone"
if (old) {
phone = "blackberry"
}在这种情况下,它很好,在您描述的示例中,一旦它开始变得令人困惑,否则我肯定不会推荐它!
你的例子可能会变得更好:
var msg = 1 < 2 ? "alert1" : "alert2";
alert(msg);https://stackoverflow.com/questions/8753338
复制相似问题