如何使用 ECMAScript 2020 的 Nullish Coalescing 运算符避免 undefined 报错

阅读时长 4 分钟读完

ECMAScript 2020 新增了 Nullish Coalescing 运算符,可以方便地处理 undefined 和 null 的情况。在前端开发中,我们经常需要判断一个变量是否为 undefined,然后再进行操作,这样会增加代码的复杂度并且容易出错,而 Nullish Coalescing 运算符则可以帮助我们避免这些问题。

理解 Nullish Coalescing 运算符

Nullish Coalescing 运算符是一种逻辑运算符,用于判断左侧的操作数是否为 null 或者 undefined。如果是,则返回右侧的操作数,否则返回左侧的操作数。

Nullish Coalescing 运算符使用两个问号 "?? "表示,语法如下:

其中,a 和 b 都可以是任意的表达式,如果 a 不是 null 或 undefined,则返回 a,否则返回 b。

示例代码

下面给出几个示例来更加详细地了解 Nullish Coalescing 运算符的使用。

1. 检查对象属性是否存在

首先,如果我们想要检查一个对象的属性是否存在,通常会使用如下方式:

使用 Nullish Coalescing 运算符可以让代码更简洁:

obj.name 为 null 或 undefined 时,name 变量会被赋值为 '无名氏',同理,当 obj.gender 为 null 或 undefined 时,gender 变量会被赋值为 '未知'。

2. 设置默认值

另一个常见的使用场景是设置变量的默认值:

在上面的代码中,如果 parseInt(inputValue) 的值为 NaN,则 maxCount 会被赋值为 10。但是,如果 inputValue 的值为 0 或者空字符串 "",则 maxCount 也会被赋值为 10,这并不是我们期望的结果。

使用 Nullish Coalescing 运算符可以更好地设置默认值:

如果 parseInt(inputValue) 的值为 NaN、null 或 undefined,则 maxCount 会被赋值为 10。

3. 避免函数参数报错

最后一个示例是避免函数参数报错的情况。有时候我们需要在调用函数时传递一些参数,但是这些参数本身并不一定都会存在,这时候就需要使用 Nullish Coalescing 运算符来避免报错了。

在上面的代码中,options 实际上是一个可选参数,如果不传入 options 或者 options.name 为 null 或 undefined,那么 getName 函数会使用默认值 "无名氏"。

总结

在 ECMAScript 2020 中,Nullish Coalescing 运算符为我们提供了更加简洁、安全、可读性更高的代码实现方式。在日常的前端开发中,我们可以结合具体的场景使用 Nullish Coalescing 运算符,让代码更加优雅和健壮。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6495040248841e989424a655

纠错
反馈