ES11 中的可选链式调用 —— 让你快速找到 null 或 undefined 的根源

阅读时长 3 分钟读完

ES11 中的可选链式调用 —— 让你快速找到 null 或 undefined 的根源

在前端中,我们经常需要处理从后端 API 返回的数据。但是,有时候我们并不知道 API 返回的数据是否正确地格式化以及是否符合我们的预期。在这种情况下,我们经常需要判断数据的属性是否存在,以避免未定义的错误。而 ES11 中的可选链式调用则可以帮助我们优雅地解决这个问题。

可选链式调用是一种新的语法,它可以让我们像访问普通对象一样访问属性,而不用担心属性不存在的情况。它可以快速找到 null 或 undefined 的根源,从而使我们的代码更加优雅、简洁、可读性更高。

可选链式调用的语法非常简单,就是在属性或方法名后面加上一个问号“?”,如下所示:

如果 object 对象是 nullundefined,那么该属性或方法的调用将停止,并且表达式的值将为 undefined,而不是引发 TypeError

这是一个例子:

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

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

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

在上面的例子中,我们使用可选的链式调用来访问 data.baz.qux.quux 属性。 如果其中的任何一个属性为 nullundefined,则该表达式将返回 undefined

除了属性之外,可选链式调用还可以用于函数调用中。 在这种情况下,如果函数不存在,则函数调用将停止并返回 undefined

在上面的例子中,我们使用了可选链式调用来访问 data.result().value 属性。 如果 result 函数不存在,则该表达式将返回 undefined

总结一下,可选链式调用是一个非常实用的特性,它可以大大简化我们在处理数据时的代码。它可以快速找到 null 或 undefined 的根源,从而让我们的代码更健壮,更易于维护。

当然,与其他语言功能一样,我们应该根据特定情况和场景来决定是否使用它。有时候它并不是最优解,而是使用条件判断更加合适。我们应该根据具体情况来选择最适合的解决方案。

最后,给出一个稍微复杂一点的使用示例:

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

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

在上面例子中,我们使用了可选链式调用来访问 user.address.city 属性。如果 city 属性为 nullundefined,则使用 ?? 运算符,返回 'Unknown',否则返回 city 的实际值。这样,我们就避免了可能引起异常的空对象或空属性访问。

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

纠错
反馈