JavaScript 可选链操作符 ?.
JavaScript About 917 words介绍
可选链操作符(?.
),不必明确验证链中的每个引用是否有效。在引用为空(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
Views: 3,050 · Posted: 2021-06-06
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb/LiteNote扫描下方二维码关注公众号和小程序↓↓↓
Loading...