Null Conditional Operators

在前端开发中,我们常常需要进行变量或对象的检查,以确保其值不为 null 或 undefined。过去,为了实现这一点,我们经常使用 if 语句或三元运算符来进行判断。但是现在,随着 Null Conditional Operators 的出现,我们可以更加简洁地处理这些情况。

Null Conditional Operators 是一组新操作符,包括 ?.?? ,它们可以帮助我们更容易地访问和处理可能为 null 或 undefined 的变量或属性。

Null-Conditional Operator

Null-Conditional Operator ?. 可以用来代替深度检查(deep check)和空值判断(null check),避免了大量的重复代码和嵌套结构。

示例代码如下:

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

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

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

上述代码中,我们首先通过传统的 if 语句检查了 person 对象是否存在 address 属性,如果存在则获取其中的 street 属性。而使用 Null-Conditional Operator 则可以更加简单地达到同样的效果,表达式 person?.address?.street 会在 person 或 address 属性不存在时返回 undefined,避免了许多冗余代码。

Nullish Coalescing Operator

Nullish Coalescing Operator ?? 则用于处理变量值为 null 或 undefined 的情况。这个操作符返回第一个非 null 或 undefined 的操作数,如果所有操作数都是 null 或 undefined,则返回最后一个操作数。

示例代码如下:

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

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

在上述代码中,我们通过 Nullish Coalescing Operator 将 text 和 name 变量的默认值设置为了字符串,当 text 和 name 值为 null 或 undefined 时则使用默认值。而 defaultValue 变量则没有被赋值,因此输出为空字符串。

指导意义

使用 Null Conditional Operators 和 Nullish Coalescing Operator 可以大大简化我们的代码,并提高代码可读性和易维护性。它们的特点是简单轻巧、安全可靠,特别适合在处理复杂对象、JSON 等数据结构时使用。

但是需要注意的是,这些新特性并不是必须使用或完全替代传统的 if 语句或三元运算符,要根据实际情况决定是否使用。

最后,建议在编写 Null Conditional Operators 和 Nullish Coalescing Operator 的代码时,注重代码可读性和可维护性,采用良好的编码习惯,避免过度使用嵌套结构,以免增加代码的复杂性。

参考链接

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/31406