什么是三元运算符,如何使用它?

JavaScript的三元运算符(?:),也称为条件运算符,用于替代条件语句,最常见的是赋值语句。例如:

// 使用 if...else 的代码
let x;
if (someCondition) {
  x = 10;
} else {
  x = 20;
}

// 使用三元运算符得到相同的结果
const x = someCondition ? 10 : 20;

从上面的例子可以看出,三元运算符比使用if...else语句更简短,并且允许我们将结果值赋给一个变量,前提是条件是一行代码。这样做的一个有用结果是,我们可以在箭头函数中使用三元运算符进行隐式返回:

// 使用 if...else 的代码
const conditionalX = (condition, x) => {
  if (condition) return x;
  else return x + 5;
}

// 使用三元运算符得到相同的结果
const conditionalX = (condition, x) => condition ? x : x + 5;

然而,请注意,通常不建议嵌套三元表达式,甚至ESLint都有一个专门的规则来处理这种情况。此外,三元运算符是React开发人员喜欢的一种方式,因为它可以在JSX代码中轻松进行条件渲染:

const ItemListTitle = (count) => (
  <h3>物品列表{ count ? (<span> - {count} 个物品</span>) : '(空)'}<h3>
);

最后,你可能想知道为什么它被称为"三元"运算符。"三元"一词基于n-ary单词设置,意味着具有三个操作数(条件,如果为真执行的表达式,如果为假执行的表达式)的运算符。