玩转 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 运算符:
const foo = null ?? "hello"; console.log(foo); // "hello" const bar = "" ?? "hello"; console.log(bar); // ""
在上面的代码中,第一次调用时 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