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


当前回答

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

详情请点击这里

其他回答

它被称为“三元”或“条件”操作符。

例子

?:操作符可以用作 if的快捷方式…else语句。 它通常用作 更大的表达式,其中if…else 声明会很尴尬。为 例子:

var now = new Date();
var greeting = "Good" + ((now.getHours() > 17) ? " evening." : " day.");

这个例子创建了一个字符串 上面写着"晚上好 下午6点之后。使用的等效代码 一个如果…Else语句看起来像 如下:

var now = new Date();
var greeting = "Good";
if (now.getHours() > 17)
   greeting += " evening.";
else
   greeting += " day.";

来自MSDN JS文档。

基本上这是一个简写的条件语句。

还看到:

Javascript三元运算符的运算符优先级 维基百科

它叫做三元算符

tmp = (foo==1 ? true : false);

三元运算符

Javascript中通常有条件语句。

例子:

if (true) {
    console.log(1)
} 
else {
    console.log(0)
}
# Answer
# 1

但它包含两行或多行,不能赋值给变量。 Javascript有一个解决这个问题的三元运算符。 三元操作符可以写在一行中并赋值给一个变量。

例子:

var operator = true ? 1 : 0
console.log(operator)
# Answer
# 1

这个三元运算符类似于C编程语言。

如果你在javascript中有一个条件检查实例函数。三元算符易于使用。只需要一行就可以实现。 例:

    private module : string ='';
    private page:boolean = false;
    async mounted(){
     if(this.module=== 'Main')
    {
    this.page = true;}
    else{
    this.page = false;
    }
}

只有一个条件的函数可以写成这样。

this.page = this.module=== 'Main' ?true:false;

条件?if True: False

它叫做三元算符。为了了解更多信息,我回答了另一个问题:

如何编写不带else的IF else语句