可选链式运算符是一个非常有用的运算符,我们可以用它来处理对象及其属性或方法
发布时间: 2019年11月09日,最后更新时间: 2021年10月12日
可选链式运算符是一个非常有用的运算符,我们可以用它来处理对象及其属性或方法。
你有没有使用过&&操作符作为后备手段?这是我最喜欢的JavaScript功能之一。
在JavaScript中,你可以首先检查一个对象是否存在,然后尝试获取它的一个属性,像这样。
const car = null
const color = car && car.color
即使car 是空的,你也不会出错,color 被赋予了null 的值。
你可以往下走多个层次。
const car = {}
const colorName = car && car.color && car.color.name
在其他一些语言中,使用&& 可能会得到真或假,因为它通常是一个逻辑运算符。
在JavaScript中则不然,它允许我们做一些很酷的事情。
现在,这个新的可选链式运算符将让我们做得更花哨。
const color = car?.color
const colorName = car?.color?.name
如果car 是null 或undefined ,结果将是undefined 。
在没有错误的情况下(而在使用&&的情况下,car 是undefined ,我们有一个ReferenceError: car is not defined 的错误)。