ES2020中的空值合并运算符是何操作?

2026-04-28 00:320阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1282个文字,预计阅读时间需要6分钟。

ES2020中的空值合并运算符是何操作?

空值合并运算符提供了简洁的语法,用于从列表中获取第一个已定义的变量(即非null和非undefined的变量)。例如,表达式 `a + b` 的结果是 `a`,前提是 `a` 不是null或undefined。如果 `a` 是null或undefined,则表达式的结果将取决于 `b` 的值。

空值合并运算符 ?? 提供了一种简短的语法,用来获取列表中第一个“已定义”的变量(译注:即值不是 null 或 undefined 的变量)。

a ?? b 的结果是:

  • a,如果 a 不是 null 或 undefined,
  • b,其他情况。

所以,x = a ?? b 是下面这个表达式的简写:

x = (a !== null && a !== undefined) ? a : b;

下面是一个更长一点的例子。

假设,我们有一个用户,变量 firstName、lastName 和 nickName 分别对应用户的名字、姓氏和昵称。如果用户决定不输入任何值,那么这些变量都可能是未定义的。

我们想要显示用户的名称:显示这三个变量中的一个,如果都没有设置值,则显示 "Anonymous"。

阅读全文

本文共计1282个文字,预计阅读时间需要6分钟。

ES2020中的空值合并运算符是何操作?

空值合并运算符提供了简洁的语法,用于从列表中获取第一个已定义的变量(即非null和非undefined的变量)。例如,表达式 `a + b` 的结果是 `a`,前提是 `a` 不是null或undefined。如果 `a` 是null或undefined,则表达式的结果将取决于 `b` 的值。

空值合并运算符 ?? 提供了一种简短的语法,用来获取列表中第一个“已定义”的变量(译注:即值不是 null 或 undefined 的变量)。

a ?? b 的结果是:

  • a,如果 a 不是 null 或 undefined,
  • b,其他情况。

所以,x = a ?? b 是下面这个表达式的简写:

x = (a !== null && a !== undefined) ? a : b;

下面是一个更长一点的例子。

假设,我们有一个用户,变量 firstName、lastName 和 nickName 分别对应用户的名字、姓氏和昵称。如果用户决定不输入任何值,那么这些变量都可能是未定义的。

我们想要显示用户的名称:显示这三个变量中的一个,如果都没有设置值,则显示 "Anonymous"。

阅读全文