安徽365热线-Bets365-365bet线上娱乐

条件(三元)运算符

条件(三元)运算符

尝试一下

function getFee(isMember) {

return isMember ? "$2.00" : "$10.00";

}

console.log(getFee(true));

// Expected output: "$2.00"

console.log(getFee(false));

// Expected output: "$10.00"

console.log(getFee(null));

// Expected output: "$10.00"

语法

jscondition ? exprIfTrue : exprIfFalse

参数

condition

计算结果用作条件的表达式。

exprIfTrue

如果 condition 的计算结果为真值(等于或可以转换为 true 的值),则执行该表达式。

exprIfFalse

如果 condition 为假值(等于或可以转换为 false 的值)时执行的表达式。

描述

除了 false,可能的假值表达式还有:null、NaN、0、空字符串("")和 undefined。如果 condition 是其中任何一个,那么条件表达式的结果就是 exprIfFalse 表达式执行的结果。

示例

简单的例子

jsconst age = 26;

const beverage = age >= 21 ? "Beer" : "Juice";

console.log(beverage); // "Beer"

处理 null 值

一个常见的用法是处理可能为 null 的值:

jsconst greeting = (person) => {

const name = person ? person.name : "stranger";

return `Howdy, ${name}`;

};

console.log(greeting({ name: "Alice" })); // "Howdy, Alice"

console.log(greeting(null)); // "Howdy, stranger"

条件链

三元运算符是右结合的,这意味着它可以按以下方式“链接”起来,类似于 if … else if … else if … else 链:

jsfunction example() {

return condition1

? value1

: condition2

? value2

: condition3

? value3

: value4;

}

这等价于以下 if...else 链。

jsfunction example() {

if (condition1) {

return value1;

} else if (condition2) {

return value2;

} else if (condition3) {

return value3;

} else {

return value4;

}

}

规范

规范

ECMAScript® 2027 Language Specification# sec-conditional-operator

浏览器兼容性

参见

if 语句

空值合并运算符(??)

可选链运算符(?.)

在代码中做决定——条件语句

表达式与运算符

帮助改进 MDN

此页面对您有帮助吗?

了解如何参与贡献

此页面最后更新于 2025年7月16日,由 MDN 贡献者更新。

在 GitHub 上查看此页面 • 报告此内容的问题

相关推荐