这个JS代码对x做了什么?

时间:2013-04-27 13:10:57

标签: javascript analysis

这里有这条小线:

var x = trigger ? n : (n-1);

我的JS有点生疏。 这是做什么的?

5 个答案:

答案 0 :(得分:1)

这只是一个简单的三元运算符。

如果trigger为真,x变为n,否则变为n-1

Here's a page from Mozilla显示了您可以使用三元运算符执行的一些操作。

答案 1 :(得分:0)

如果触发true,则x变为n,否则n-1

条件运算符用作标准if语句的快捷方式。它需要三个操作数。

Condition ? expr1 : expr2

condition:计算结果为true或false的表达式。

expr1, expr2:具有任何类型值的表达式。

如果condition为true,则运算符返回expr1的值;否则,它返回expr2的值。

SEE HERE

答案 2 :(得分:0)

如果triggertruthy,则x = nx = n-1

答案 3 :(得分:0)

如果条件触发器为真,则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

答案 4 :(得分:0)

?是条件运算符:https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/Conditional_Operator

基本上它等同于:

if (x) { x=n; } else { x=n-1;}