什么是?:(问号和冒号运算符。条件或“三元”)操作符,我如何使用它?
当前回答
z = (x == y ? 1 : 2);
等于
if (x == y)
z = 1;
else
z = 2;
当然,除了,它更短。
其他回答
它叫做三元算符
tmp = (foo==1 ? true : false);
三元运算符只是一种写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或未设置,则继续执行下一个。
当你拥有的都是符号时,想要谷歌有点困难;)使用的术语是“JavaScript条件运算符”。
如果您在JavaScript中看到更多有趣的符号,您应该首先尝试查找JavaScript的操作符:Mozilla Developer Center的操作符列表。您可能遇到的一个例外是$符号。
为了回答您的问题,条件操作符替换了简单的if语句。最好举个例子:
var insurancePremium = age > 21 ? 100 : 200;
而不是:
var insurancePremium;
if (age > 21) {
insurancePremium = 100;
} else {
insurancePremium = 200;
}
三元运算符
Javascript中通常有条件语句。
例子:
if (true) {
console.log(1)
}
else {
console.log(0)
}
# Answer
# 1
但它包含两行或多行,不能赋值给变量。 Javascript有一个解决这个问题的三元运算符。 三元操作符可以写在一行中并赋值给一个变量。
例子:
var operator = true ? 1 : 0
console.log(operator)
# Answer
# 1
这个三元运算符类似于C编程语言。