JavaScript 可选链操作符 ?.

JavaScript 大约 917 字

介绍

可选链操作符(?.),不必明确验证链中的每个引用是否有效。在引用为空(null或者undefined)的情况下不会引起错误,该表达式短路返回值是undefined。与函数调用一起使用时,如果给定的函数不存在,则返回undefined

语法

obj?.prop
obj?.[expr]
arr?.[index]
func?.(args)

示例一

const adventurer = {
  name: 'Alice',
  dog: {
    name: 'Dinah'
  }
};

const dogName = adventurer.dog?.name;
console.log(dogName); // output: Dinah

console.log(adventurer.someNonExistentMethod?.()); // output: undefined

示例二

连用多个可选链?.

let customer = {
  name: "Carl",
  details: {
    age: 82,
    location: "Paradise Falls" // details 的 address 属性未有定义
  }
};
let customerCity = customer.details?.address?.city;

// … 可选链也可以和函数调用一起使用
let duration = vacations.trip?.getTime?.();

示例三

使用空值合并操作符??给可选链设置默认值

let customer = {
  name: "Carl",
  details: { age: 82 }
};
let customerCity = customer?.city ?? "暗之城";
console.log(customerCity); // 暗之城

官方文档

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Optional_chaining

阅读 432 · 发布于 2021-06-07

————        END        ————

扫描下方二维码关注公众号和小程序↓↓↓

扫描二维码关注我
昵称:
随便看看 换一批