【发布时间】:2011-04-14 11:08:15
【问题描述】:
【问题讨论】:
-
所以这个三元运算符走进了一个酒吧……
标签: javascript
【问题讨论】:
标签: javascript
它与: 一起构成ternary operator,并且是根据条件结果(第一个子表达式)返回两个值(第二个和第三个子表达式)之一的快捷方式。
维基百科给出了很好的描述:http://en.wikipedia.org/wiki/%3F:#Javascript
这样使用:
var result = (condition ? value_for_true : value_for_false);
示例:
var result = (1 > 0 ? "It is greater" : "It is less");
以上示例将"It is greater" 存储在变量result 中。
就其本身而言,? 在不使用 : 的情况下除了会导致语法错误之外什么都不做。
【讨论】:
表示内联 if
条件? true_statement : false_statement
例如
if(condition){
alert("true");
}else{
alert("false");
}
等同于condition ? alert("true"): alert("false");
【讨论】:
alert(condition ? "true" : "false")——尽管在这种特殊情况下,alert(condition.toString()) 也可以工作。无论哪种方式,如果您必须在两个操作之间做出决定,请使用if/else;如果您要在两个值之间做出决定,请使用 ?:
它是ternary operator 的一部分。
// This simple if
if (25 > 23) {
alert("yes");
} else {
alert("no");
}
// Is the same as
alert(25 > 23 ? "yes" : "no");
【讨论】:
您可能指的是?: 或三元运算符。由于之前已经多次介绍过,我将向您推荐this thread以获得完整的解释。
【讨论】: