使用 ES2020 的 Optional Chaining Operator 避免深层级对象属性的 undefined

阅读时长 4 分钟读完

简介

在前端开发中,获取对象属性是日常工作不可或缺的一环。在访问对象属性时,很多情况下我们需要获取对象中的深层级属性。但是,当我们遇到对象中不存在我们所需的属性时,该对象属性就会被 undefined 所代替。这可能会导致代码中的许多错误,甚至影响到整个网站的运行。为了避免这种情况的发生,我们可以使用 ES2020 的 Optional Chaining Operator(可选链操作符)。

Optional Chaining Operator 是什么?

Optional Chaining Operator 是 ES2020 的一个新特性,简写为 ?.。可以让我们轻松地访问深层级对象的属性,而不需要担心对象属性是否存在。

下面是一个使用 Optional Chaining Operator 的示例:

在这个示例中,我们使用 Optional Chaining Operator 访问了 obj 对象中的深层级属性 foo.bar.baz。即使在 obj 对象中不包含 foobarbaz 属性,baz 变量仍将被赋值为 undefined

Optional Chaining Operator 的使用场景

Optional Chaining Operator 的使用场景非常多,以下是其中一些示例:

访问深层级对象的属性

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

保护函数调用

在调用对象中的函数时,如果该对象为空或值为 undefined,代码将会崩溃。但是,使用 Optional Chaining Operator 可以避免这种情况的发生。

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

避免运行时错误

通过使用 Optional Chaining Operator,我们可以避免因访问不存在的对象属性而导致的运行时错误。

总结

Optional Chaining Operator 是 ES2020 的一个新特性,在访问对象属性时非常方便,可以避免代码中的许多问题和错误。使用它不仅可以使你的代码更加简洁和易读,而且可以避免一系列意想不到的问题的出现。在开发中,尽可能使用 Optional Chaining Operator 可以提高代码的可靠性和健壮性。

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

纠错
反馈