ES12 标准下的空位合并操作符

在 JavaScript 中,我们经常会遇到一些“偏移”问题。比如,我们想在一个数组中查找某个元素的索引,但是这个数组中可能存在空位,导致我们无法正确地得到索引值。在 ES12 标准中,新增了一个空位合并操作符(nullish coalescing operator),可以很好地解决这个问题。

空位问题

在 JavaScript 中,数组中的空位指的是数组中某些位置没有任何值。例如,下面的代码中,数组 arr 中的第二个元素和第四个元素都是空位。

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

对于这种情况,我们使用 forEach 方法遍历数组时,会跳过这些空位。

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

同样地,使用 indexOf 方法查找元素在数组中的索引时,也会受到空位的影响。

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

由于空位的存在,上面的代码中,查找 3 的索引时可以得到正确的结果,但是查找 undefined 的索引时却返回了 -1,这并不是我们想要的结果。

空位合并操作符

在 ES12 标准中,新增了一个空位合并操作符 ??,可以很好地解决上述问题。空位合并操作符的语法如下:

- -- -

如果 anullundefined 或空位,返回 b,否则返回 a

借助空位合并操作符,我们可以修改上述代码,得到正确的结果。

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

在上面的代码中,如果 indexOf 方法返回的是 nullundefined 或空位,就会返回 -1,否则返回 indexOf 方法的返回值。

示例代码

下面是一个使用空位合并操作符的示例代码。

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

在上面的代码中,我们先使用空位合并操作符判断 indexOf(3) 的返回值是否为 nullundefined 或空位,如果是,则继续判断 indexOf(undefined) 的返回值是否为 nullundefined 或空位,如果都不是,则返回 -1

总结

在 JavaScript 中,空位是一个经常会被忽略的问题,但是它却可能导致一些错误的结果。在 ES12 标准中,新增的空位合并操作符可以很好地解决这个问题。我们可以借助空位合并操作符,判断一个值是否为 nullundefined 或空位,从而得到正确的结果。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/65ffd07fd10417a222b0e313


猜你喜欢

相关推荐

    暂无文章