ES2020中的空值合并运算符是何操作?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1256个文字,预计阅读时间需要6分钟。
空值合并运算符+提供了简短的语法,用于获取列表中第一个已定义的变量(即非null或undefined的变量)。例如,表达式+a+b的结果是a,如果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"。
本文共计1256个文字,预计阅读时间需要6分钟。
空值合并运算符+提供了简短的语法,用于获取列表中第一个已定义的变量(即非null或undefined的变量)。例如,表达式+a+b的结果是a,如果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"。

