【发布时间】:2013-04-27 13:10:56
【问题描述】:
这里有这条小线:
var x = trigger ? n : (n-1);
我的 JS 有点生疏了。 这是做什么的?
【问题讨论】:
标签: javascript analysis
这里有这条小线:
var x = trigger ? n : (n-1);
我的 JS 有点生疏了。 这是做什么的?
【问题讨论】:
标签: javascript analysis
【讨论】:
如果触发true,则x变为n否则n-1
条件运算符用作标准 if 语句的快捷方式。它需要三个操作数。
Condition ? expr1 : expr2
condition :计算结果为真或假的表达式。
expr1, expr2 : 具有任何类型值的表达式。
如果条件为真,则运算符返回 expr1 的值;否则返回 expr2 的值。
【讨论】:
如果trigger 是truthy 则x = n 否则x = n-1
【讨论】:
如果条件触发为真,则 x = n。如果触发器为假,则 x = n - 1;
快速测试:
<script>
var trigger = false, n = 7;
var x = trigger ? n : (n-1);
alert( x );
</script>
<script>
var trigger = true, n = 7;
var x = trigger ? n : (n-1);
alert( x );
</script>
更多关于“条件运算符”的内容:
http://msdn.microsoft.com/en-us/library/ie/be21c7hw%28v=vs.94%29.aspx
【讨论】:
?是条件运算符:https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/Conditional_Operator
本质上相当于:
if (x) { x=n; } else { x=n-1;}
【讨论】: