ECMAScript 2020 的 Nullish Coalescing 运算符详解及应用场景

阅读时长 4 分钟读完

ECMAScript 2020 中引入了 Nullish Coalescing 运算符,它可以帮助我们更方便地处理 null 或 undefined 的情况。在本文中,我们将对 Nullish Coalescing 运算符进行详细的介绍,并讨论它的应用场景。

Nullish Coalescing 运算符

Nullish Coalescing 运算符是双问号运算符(??),它可以用来判断一个变量是否为 null 或 undefined,并在变量为 null 或 undefined 时返回一个默认值。它的语法如下:

其中,variable 是要进行判断的变量,defaultValue 是默认值。如果 variable 的值为 null 或 undefined,则返回 defaultValue,否则返回 variable 的值。

与传统的逻辑或运算符(||)不同,Nullish Coalescing 运算符只在变量为 null 或 undefined 时返回默认值,而不是在变量为假值时返回默认值。例如:

-- -------------------- ---- -------
----- - - -----
----- - - ----------
----- - - --
----- - - ---

------------- -- ----------- -- ---------
------------- -- ----------- -- ---------
------------- -- ----------- -- -
------------- -- ----------- -- ---------

------------- -- ----------- -- ---------
------------- -- ----------- -- ---------
------------- -- ----------- -- -
------------- -- ----------- -- --

在上面的例子中,a 和 b 的值为 null 和 undefined,使用逻辑或运算符时都会返回默认值。而使用 Nullish Coalescing 运算符时,它们也会返回默认值。而 c 和 d 的值为 0 和空字符串,使用逻辑或运算符时只有空字符串会返回默认值,而使用 Nullish Coalescing 运算符时都不会返回默认值。

应用场景

Nullish Coalescing 运算符可以用来处理许多场景,例如:

1. 设置默认值

当我们需要设置一个变量的默认值时,可以使用 Nullish Coalescing 运算符。例如:

在上面的例子中,如果 getName() 返回 null 或 undefined,则 name 的值将被设置为 'Guest'。

2. 避免错误

在访问对象属性或数组元素时,如果对象或数组不存在,会抛出错误。可以使用 Nullish Coalescing 运算符来避免这种错误。例如:

在上面的例子中,如果 person 对象没有 address 属性,或 address 属性的值为 null 或 undefined,则 city 的值将被设置为 'Unknown'。

3. 链式调用

在链式调用中,如果中间的对象不存在,会抛出错误。可以使用 Nullish Coalescing 运算符来避免这种错误。例如:

在上面的例子中,如果 person 对象或 address 属性不存在,或它们的值为 null 或 undefined,则 result 的值将被设置为 'Unknown'。

总结

Nullish Coalescing 运算符是 ECMAScript 2020 中引入的新运算符,它可以帮助我们更方便地处理 null 或 undefined 的情况。它与传统的逻辑或运算符不同,只在变量为 null 或 undefined 时返回默认值。Nullish Coalescing 运算符可以用来设置默认值、避免错误和链式调用等场景。在实际开发中,我们应该根据具体情况灵活使用。

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

纠错
反馈