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


当前回答

三元表达式在JS中非常有用,尤其是在React中。这里有一个简单的答案来回答许多好的、详细的问题。

condition ? expressionIfTrue : expressionIfFalse

将expressionIfTrue视为OG if语句表示为真; 把expressionifalse当作else语句。

例子:

var x = 1;
(x == 1) ? y=x : y=z;

检查x的值,如果为真,返回第一个y=(value),如果为假,返回冒号后的第二个y=(value)。

其他回答

这是一行中的if语句。

So

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

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

如果匹配为true,则执行?

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

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";
z = (x == y ? 1 : 2);

等于

if (x == y)
    z = 1;
else
    z = 2;

当然,除了,它更短。

嘿,伙计,记住js是通过求值为真或假来工作的,对吧?

让我们用一个三元运算符:

questionAnswered ? "Awesome!" : "damn" ;

首先,js检查questionAnswered是真还是假。

如果为真(?)你会得到“太棒了!”

否则(:)你会得到“damn”;

希望这对朋友有帮助:)

大部分答案都是正确的,但我想再补充一点。三元操作符是右结合的,这意味着它可以以以下方式链接,如果…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; }
}

详情请点击这里