ECMAScript 2020 (ES11) 中的 nullish coalescing operator 详解

阅读时长 3 分钟读完

介绍

ECMAScript 2020 (ES11) 是 JavaScript 的最新版本,为了让开发者能够更加方便地处理值为 undefined 或 null 的情况,ES11 引入了一个新的操作符 - nullish coalescing operator (空值合并操作符)。

这个操作符被用来在一定程度上优化代码,并且在处理特殊情况时可以提供更好的可读性。

细节

该操作符由两个问号(??)组成,其语法如下:

该代码中,当 a 的值为 null 或 undefined 时,返回 b 的值,否则返回 a 的值。

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

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

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

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

注意,nullish coalescing operator 仅在 a 的值为 null 或 undefined 时才会生效,其他 falsy 值(例如 0 或空字符串)不会触发该操作符,这一点与 JavaScript 中的 || 操作符是不同的。

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

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

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

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

使用场景

nullish coalescing operator 可以用于一些常见情况,比如处理函数的参数或对象属性的默认值。

总结

nullish coalescing operator 是 ES11 中的一个新操作符,它可以更好地处理值为 null 或 undefined 的情况,同时也可以提高代码的可读性。但需要注意,它仅仅只能处理 null 和 undefined,其他 falsy 值仍然需要使用其他方法来处理。对于处理函数参数的默认值、对象属性默认值等常见场景,nullish coalescing operator 是一种很好的选择。

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

纠错
反馈