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


当前回答

x = 9
y = 8

一元

++x
--x

二进制

z = x + y

三元

2>3 ? true : false;
2<3 ? true : false;
2<3 ? "2 is lesser than 3" : "2 is greater than 3";

其他回答

x = 9
y = 8

一元

++x
--x

二进制

z = x + y

三元

2>3 ? true : false;
2<3 ? true : false;
2<3 ? "2 is lesser than 3" : "2 is greater than 3";

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

例子

?:操作符可以用作 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三元运算符的运算符优先级 维基百科

我想在已经给出的答案上加上一些。

如果你遇到(或想要使用)三元的情况,如'显示一个变量,如果它被设置,否则…',你可以让它更短,没有三元。


而不是:

var welcomeMessage  = 'Hello ' + (username ? username : 'guest');

你可以使用:

var welcomeMessage  = 'Hello ' + (username || 'guest');

这是javascript相当于PHP的速记三元操作符?:

甚至:

var welcomeMessage  = 'Hello ' + (username || something || maybethis || 'guest');

它对变量求值,如果它为false或未设置,则继续执行下一个。

嘿,伙计,记住js是通过求值为真或假来工作的,对吧?

让我们用一个三元运算符:

questionAnswered ? "Awesome!" : "damn" ;

首先,js检查questionAnswered是真还是假。

如果为真(?)你会得到“太棒了!”

否则(:)你会得到“damn”;

希望这对朋友有帮助:)

三元运算符只是一种写if else条件的简单方法。它在ReactJS中被广泛使用。

例如:

Const x = 'foo'; //用这个代替if else X === 'foo' ?alert('True'): alert('False'); / /输出 //提示框将提示'True'