ECMAScript 2021 (ES12) 中的可选链操作符用法详解

在前端开发中,我们常常需要处理从后台返回的数据。而有些数据可能是不存在的,如果直接访问不存在的数据,就会出现 undefined 的错误,导致程序崩溃。为了解决这个问题,在 ECMAScript 2021 (ES12) 中引入了可选链操作符。

使用可选链操作符,可以很方便地判断是否存在某个属性或方法,而不用担心出现 undefined 的错误。接下来,本文将详细介绍可选链操作符的用法,并给出一些示例代码。

基本语法

可选链操作符 ?. 是一个连字符和问号的组合,可以和其他操作符一起使用,表示如果访问的对象不存在,则不会出现错误,而是返回 undefined

下面是可选链操作符的语法示例:

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

其中,object 表示要访问的对象,property 表示要访问的属性,method() 表示要调用的方法,[property] 表示使用动态的属性名。

使用示例

假设我们有一个对象 user,包含了用户的姓名 (name) 和地址 (address) 信息。但是,有的用户没有填写地址信息,导致 user.addressundefined。在这种情况下,如果我们直接访问 user.address.street,就会出现 TypeError: Cannot read property 'street' of undefined 的错误。

为了避免出现上述错误,我们可以使用可选链操作符来判断是否存在 user.address,如果存在则访问 user.address.street,否则返回 undefined。具体代码如下:

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

上述代码等同于下面的代码:

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

另外,可选链操作符可以和其他操作符一起使用,例如 nullish coalescing 运算符:

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

上述代码等同于下面的代码:

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

最后,可选链操作符也可以使用在数组中:

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

上述代码等同于下面的代码:

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

注意事项

需要注意的是,可选链操作符不能用在声明变量时的左侧,例如:

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

正确的语法应该是:

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

此外,可选链操作符只能用于访问对象的属性或方法,不能用来访问变量或对象本身:

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

结论

可选链操作符是 ECMAScript 2021 (ES12) 中很实用的新增语法。通过使用可选链操作符,我们可以避免访问不存在的属性或方法时出现 undefined 的错误,代码更加简洁、安全、可读性更强。在实际应用中,我们应该适时地使用可选链操作符,提升程序的稳定性和可维护性。

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