什么是?:(问号和冒号运算符。条件或“三元”)操作符,我如何使用它?
当前回答
当你拥有的都是符号时,想要谷歌有点困难;)使用的术语是“JavaScript条件运算符”。
如果您在JavaScript中看到更多有趣的符号,您应该首先尝试查找JavaScript的操作符:Mozilla Developer Center的操作符列表。您可能遇到的一个例外是$符号。
为了回答您的问题,条件操作符替换了简单的if语句。最好举个例子:
var insurancePremium = age > 21 ? 100 : 200;
而不是:
var insurancePremium;
if (age > 21) {
insurancePremium = 100;
} else {
insurancePremium = 200;
}
其他回答
三元表达式在JS中非常有用,尤其是在React中。这里有一个简单的答案来回答许多好的、详细的问题。
condition ? expressionIfTrue : expressionIfFalse
将expressionIfTrue视为OG if语句表示为真; 把expressionifalse当作else语句。
例子:
var x = 1;
(x == 1) ? y=x : y=z;
检查x的值,如果为真,返回第一个y=(value),如果为假,返回冒号后的第二个y=(value)。
这可能不是最优雅的方式。但是对于不熟悉三元运算符的人来说,这可能是有用的。我个人倾向于使用一行程序回退,而不是使用条件块。
// var firstName = 'John'; // Undefined
var lastName = 'Doe';
// if lastName or firstName is undefined, false, null or empty => fallback to empty string
lastName = lastName || '';
firstName = firstName || '';
var displayName = '';
// if lastName (or firstName) is undefined, false, null or empty
// displayName equals 'John' OR 'Doe'
// if lastName and firstName are not empty
// a space is inserted between the names
displayName = (!lastName || !firstName) ? firstName + lastName : firstName + ' ' + lastName;
// if display name is undefined, false, null or empty => fallback to 'Unnamed'
displayName = displayName || 'Unnamed';
console.log(displayName);
三元运算符
它叫做三元算符。为了了解更多信息,我回答了另一个问题:
如何编写不带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
这是一行中的if语句。
So
var x=1;
(x == 1) ? y="true" : y="false";
alert(y);
要计算的表达式在()中。
如果匹配为true,则执行?
如果匹配为false,执行下面的代码: