Javascript Optional Chaining 和 Nullish Coalescing 操作符

阅读时长 5 分钟读完

作为前端开发工程师,我们在日常开发中经常需要处理非常复杂的数据结构,而 JavaScript Optional Chaining 和 Nullish Coalescing 操作符是两个非常重要的语法糖,可以帮助我们更高效地处理和转换数据。本文将介绍这两个操作符,以及如何在实际开发中使用它们。

Javascript Optional Chaining

当我们尝试从一个多重嵌套的对象中获取一个属性值时,我们经常需要先检查每个对象是否存在。例如:

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

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

这段代码非常冗长,尤其是当我们需要检查更多的属性时。为了简化这个过程,我们可以使用 Optional Chaining 操作符 ?. ,它允许我们直接访问多层嵌套的对象属性,而不需要检查每个对象是否存在。例如:

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

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

这段代码更简洁,也更易读。当 useruser.addressundefinednull 时,Optional Chaining 不会抛出错误,而是返回 undefined

我们还可以将 Optional Chaining 与其他 JavaScript 操作符一起使用,例如:

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

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

这个代码片段使用了 Nullish Coalescing 操作符,我们将在下一节中介绍。

Nullish Coalescing

在 JavaScript 中,我们经常需要提供默认值,以防止变量为 nullundefined 。我们通常使用短路运算符 || 来实现这一点,例如:

如果 user.namenullundefined ,这段代码将返回 "Unknown" ,否则返回 user.name 自身的值。然而,这种方法有一个缺陷,即当 user.name 的值为 ''0 时,它也会被视为假值,从而返回默认值。

为了避免这个问题,我们可以使用 Nullish Coalescing 操作符 ?? ,它只在左侧操作数为 nullundefined 时返回右侧操作数。例如:

user.name 的值为 nullundefined 时,这段代码将返回 "Unknown" ,否则返回 user.name 自身的值。注意,当 user.name 的值为 ''0 时,返回的值是 ''0 ,而不是默认值。

我们可以将 Optional Chaining 和 Nullish Coalescing 结合起来使用,例如:

这个代码片段使用了 Optional Chaining 和 Nullish Coalescing 操作符,它将返回 user.address.city 的值,如果为 nullundefined ,则返回默认值 "Unknown"

总结

JavaScript Optional Chaining 和 Nullish Coalescing 操作符是两个非常有用的语法糖,可以帮助我们更高效地处理和转换数据。使用 Optional Chaining 我们可以避免繁琐的多重嵌套级联,使用 Nullish Coalescing 我们可以安全地提供默认值。在实际的开发过程中,我们可以灵活地使用这两个操作符,以优化我们的代码结构。

示例代码

下面是一些示例代码,演示如何使用 Optional Chaining 和 Nullish Coalescing 操作符。

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

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

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

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

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

纠错
反馈