[ES10 技巧] 利用 ES10 的空值合并操作符解决 JS 程序中的空值访问错误

阅读时长 4 分钟读完

在 JavaScript 中,访问对象中不存在的属性、访问 undefined 变量等操作常常会导致运行时错误。这些错误不仅会影响程序的可靠性和稳定性,也会增加代码的复杂度和维护难度。为了解决这个问题,ES10 新增了一个空值合并操作符 ??,可以方便地处理空值访问错误。

空值合并操作符的基本用法

空值合并操作符可以用来判断一个值是否为 null 或 undefined,并在它们为真时返回一个默认值。它的语法如下:

如果 valueA 不为 null 或 undefined,则返回 valueA;否则返回 valueB,即默认值。这里的 ?? 是一个新的操作符,可以看成是逻辑或操作符 || 的升级版,但只有在前面的表达式为 null 或 undefined 时才会返回后面的默认值。

下面是一个简单的示例,用空值合并操作符判断对象属性的值是否存在,如果不存在就使用默认值:

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

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

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

可以看到,当对象属性的值为 null 时,空值合并操作符会忽略默认值,返回原始的值。

空值合并操作符的高级用法

空值合并操作符不仅可以用于判断对象属性的值是否存在,还可以用于处理更复杂的值,例如数组、函数等。下面是一些高级用法。

用空值合并操作符处理数组

空值合并操作符可以用来处理数组中的 null 或 undefined 值。例如,我们可以使用空值合并操作符将数组中的第一个非空值作为默认值:

这里使用了多个空值合并操作符,如果数组中存在非空值,则返回该值;否则返回默认值。

用空值合并操作符处理函数返回值

空值合并操作符还可以用来处理函数返回值,例如,我们可以使用空值合并操作符将函数的返回值与默认值合并:

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

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

这里的 divide 函数用于计算两个数的商,并在 b 为 0 时返回 null。我们可以使用空值合并操作符将其返回值与默认值合并,以避免取到 null 值。

用空值合并操作符处理复杂表达式

空值合并操作符还可以用于处理复杂的表达式,例如,我们可以使用空值合并操作符将多个表达式合并,并返回第一个非空值:

这里使用了多个逻辑或和逻辑与操作符,将多个表达式合并,并返回第一个非空值。可以看到,使用空值合并操作符可以使代码更加简洁易懂。

总结

空值合并操作符是 ES10 引入的新特性,它可以方便地处理 JavaScript 程序中的空值访问错误。使用空值合并操作符,可以使代码更加简洁易懂,避免不必要的错误和异常。

不过需要注意的是,空值合并操作符只能判断 null 或 undefined 值,不能判断其他假值,如 false、0、'' 等。如果需要处理这些值,仍然需要使用逻辑或和逻辑与操作符。

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

纠错
反馈