什么是?:(问号和冒号运算符。条件或“三元”)操作符,我如何使用它?
当前回答
条件(三元)操作符是唯一的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文档链接
其他回答
它叫做三元算符。为了了解更多信息,我回答了另一个问题:
如何编写不带else的IF else语句
如果你在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
三元表达式在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 else条件的简单方法。它在ReactJS中被广泛使用。
例如:
Const x = 'foo'; //用这个代替if else X === 'foo' ?alert('True'): alert('False'); / /输出 //提示框将提示'True'
我想在已经给出的答案上加上一些。
如果你遇到(或想要使用)三元的情况,如'显示一个变量,如果它被设置,否则…',你可以让它更短,没有三元。
而不是:
var welcomeMessage = 'Hello ' + (username ? username : 'guest');
你可以使用:
var welcomeMessage = 'Hello ' + (username || 'guest');
这是javascript相当于PHP的速记三元操作符?:
甚至:
var welcomeMessage = 'Hello ' + (username || something || maybethis || 'guest');
它对变量求值,如果它为false或未设置,则继续执行下一个。