什么是?:(问号和冒号运算符。条件或“三元”)操作符,我如何使用它?
当前回答
大部分答案都是正确的,但我想再补充一点。三元操作符是右结合的,这意味着它可以以以下方式链接,如果…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语句。
So
var x=1;
(x == 1) ? y="true" : y="false";
alert(y);
要计算的表达式在()中。
如果匹配为true,则执行?
如果匹配为false,执行下面的代码:
条件(三元)操作符是唯一的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文档链接
三元表达式在JS中非常有用,尤其是在React中。这里有一个简单的答案来回答许多好的、详细的问题。
condition ? expressionIfTrue : expressionIfFalse
将expressionIfTrue视为OG if语句表示为真; 把expressionifalse当作else语句。
例子:
var x = 1;
(x == 1) ? y=x : y=z;
检查x的值,如果为真,返回第一个y=(value),如果为假,返回冒号后的第二个y=(value)。
如果你在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
z = (x == y ? 1 : 2);
等于
if (x == y)
z = 1;
else
z = 2;
当然,除了,它更短。