玩转 ECMAScript 2020: 使用??运算符解决常见的类型转换问题

阅读时长 4 分钟读完

玩转 ECMAScript 2020: 使用 Nullish Coalescing 运算符解决常见的类型转换问题

最近,ECMAScript 2020 引入了一个新的运算符,即 Nullish Coalescing 运算符,该运算符可以解决常见的类型转换问题。在本文中,我们将深入探讨 Nullish Coalescing 运算符的用法,并给出一些实际的示例代码。

首先,让我们来了解一下 Nullish Coalescing 运算符的基本语法:它使用两个连续的 ? 字符串,例如,a ?? b。该运算符的含义是,如果 a 是 null 或 undefined,则返回 b,否则返回 a。

这种行为与 || 运算符类似,但是需要注意的是,|| 运算符会返回第一个被解释为真的操作数,而不是严格的 null 或 undefined。例如,如果 x 为“”(空字符串),则 x || "hello" 将返回 "hello",而不是空字符串。

下面是一个简单的示例,演示了如何使用 Nullish Coalescing 运算符:

在上面的代码中,第一次调用时 foo 将返回 "hello",因为它是 null 或 undefined,而第二次调用时 bar 将返回空字符串 ""。

现在让我们来看一些更实际的示例,演示了如何使用 Nullish Coalescing 运算符解决常见的类型转换问题。

示例 1: 数组中的空值或缺失值

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

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

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

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

在上面的代码中,当访问数组 arr1 的第二个元素时,它是 null 或 undefined,因此使用 Nullish Coalescing 运算符返回 "default"。当访问数组 arr2 的第二个元素时,它是 "",而不是 null 或 undefined,因此返回 ""。当访问数组的第一个元素时,它是 1,因此返回 1。

示例 2: 将数字字符串转换为数字

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

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

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

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

在上面的代码中,str1 是一个有效的数字字符串,因此使用 Nullish Coalescing 运算符转换为数字 12345。str2 不是有效的数字字符串,因此返回 "hello"。str3 是空字符串,Nullish Coalescing 运算符将返回空字符串 ""。

例如,使用 || 运算符,尝试将 str1 转换为数字会导致错误的结果:num1 = str1 || 0 将返回字符串 "12345",而不是数字 12345。

总结

在本文中,我们深入探讨了 Nullish Coalescing 运算符的用法,并给出了一些实际的示例代码。使用 Nullish Coalescing 运算符可以简化常见的类型转换问题,并使代码更加易于阅读和维护。为了充分利用这个新的运算符,请确保您熟悉其语法和行为,并根据需要在代码中应用它。

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

纠错
反馈