什么是?:(问号和冒号运算符。条件或“三元”)操作符,我如何使用它?


当前回答

这是一行中的if语句。

So

var x=1;
(x == 1) ? y="true" : y="false";
alert(y);

要计算的表达式在()中。

如果匹配为true,则执行?

如果匹配为false,执行下面的代码:

其他回答

这是一行中的if语句。

So

var x=1;
(x == 1) ? y="true" : y="false";
alert(y);

要计算的表达式在()中。

如果匹配为true,则执行?

如果匹配为false,执行下面的代码:

 (sunday == 'True') ? sun="<span class='label label-success'>S</span>" : sun="<span class='label label-danger'>S</span>";

 sun = "<span class='label " + ((sunday === 'True' ? 'label-success' : 'label-danger') + "'>S</span>"
x = 9
y = 8

一元

++x
--x

二进制

z = x + y

三元

2>3 ? true : false;
2<3 ? true : false;
2<3 ? "2 is lesser than 3" : "2 is greater than 3";

大部分答案都是正确的,但我想再补充一点。三元操作符是右结合的,这意味着它可以以以下方式链接,如果…else-if…else-if…else:

function example() {
    return condition1 ? value1
         : condition2 ? value2
         : condition3 ? value3
         : value4;
}

等价于:

function example() {
    if (condition1) { return value1; }
    else if (condition2) { return value2; }
    else if (condition3) { return value3; }
    else { return value4; }
}

详情请点击这里

条件(三元)操作符是唯一的JavaScript操作符 这需要三个操作数。这个运算符经常被用作 if语句的快捷方式。

condition ? expr1 : expr2 

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

function fact(n) {
  if (n > 1) {
    return n * fact(n-1);
  } else {
    return 1;
  }
  // we can replace the above code in a single line of code as below
  //return (n != 1) ? n * fact(n - 1) : 1;
}
console.log(fact(5));

如需更多说明,请阅读MDN文档链接