ECMAScript 2019(ES10)的 optional chaining 和 nullish coalescing 运算符详解

阅读时长 4 分钟读完

在 ECMAScript 2019(ES10)中,引入了两个新的运算符:optional chaining 和 nullish coalescing。这些新的运算符可以帮助开发人员更方便地处理 JavaScript 中的 null 或 undefined 值,提高代码的可读性和可维护性。

Optional Chaining 运算符

Optional chaining 运算符(?.)允许开发人员在不确定对象是否存在的情况下,安全地访问其属性或方法。在使用 optional chaining 运算符时,如果访问的属性或方法不存在,则返回 undefined,而不是抛出 TypeError 异常。

示例代码

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

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

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

使用 Optional Chaining 运算符的注意点

  • Optional chaining 运算符不能在函数调用或数组索引中使用,只能用于对象属性或方法的访问。
  • Optional chaining 运算符不能用于赋值语句的左侧。

Nullish Coalescing 运算符

Nullish coalescing 运算符(??)用于判断变量是否为 null 或 undefined,并在变量为 null 或 undefined 时返回默认值。与 || 运算符不同的是,?? 运算符只有在变量为 null 或 undefined 时返回默认值,否则返回变量的值。

示例代码

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

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

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

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

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

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

使用 Nullish Coalescing 运算符的注意点

  • Nullish coalescing 运算符只能用于判断变量是否为 null 或 undefined,不能用于判断变量是否为 false、0、空字符串等。
  • Nullish coalescing 运算符的优先级较低,需要注意使用括号来控制优先级。

总结

Optional chaining 运算符和 nullish coalescing 运算符是 ECMAScript 2019(ES10)中引入的两个新的运算符,它们可以帮助开发人员更方便地处理 JavaScript 中的 null 或 undefined 值。在实际开发中,我们可以根据具体场景选择使用这些运算符,提高代码的可读性和可维护性。

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

纠错
反馈