三元运算符 ‘?’

有时我们需要根据一个条件去赋值一个变量。

如下所示:

var accessAllowed;
var age = prompt('How old are you?', '');

if (age > 18) {
  accessAllowed = true;
} else {
  accessAllowed = false;
}

alert(accessAllowed);

三元运算符让我们可以更简短地达到目的。

这个运算符通过问号 ? 表示。被称为“三元”是因为该运算符中有三个操作数。实际上它是 JavaScript 中唯一一个有这么多操作数的运算符。

语法:

var result = condition ? value1 : value2;

计算条件结果,如果结果为真,则返回 value1,否则返回 value2

例如:

var accessAllowed = age > 18 ? true : false;

技术上讲,我们可以省略 age > 18 外面的括号。问号运算符的优先级较低,所以它会在比较运算符 > 后执行。

‘?’ 的非常规使用

有时可以使用问号 ? 来代替 if 语句:

var company = prompt('哪一个公司发明了JS?');

company == '网景' ? alert('Right!') : alert('Wrong.');

根据条件 company =='Netscape',要么执行 ? 后面的第一个表达式并显示对应内容,要么执行第二个表达式并显示对应内容。

在这里我们不是把结果赋值给变量。而是根据条件执行不同的代码。

问号 ? 的作用是根据条件返回一个或另一个值。请正确使用它。当需要执行不同的代码分支时,请使用 if

文档更新时间: 2021-10-08 10:49   作者:张老师