奇怪的语法,`?.` 在 JavaScript 中是什么意思?
让我们尝试通过一个例子来理解‘?.’。
考虑以下对象示例,描述了一个 23 岁的男性人类 −
const being = { human: { male: { age: 23 } } };
现在让我们假设我们要访问这个 being 对象的 age 属性。很简单,对吧?我们只需使用链式操作来访问,就像下面的代码一样 −
示例
const being = { human: { male: { age: 23 } } }; console.log(being.human.male.age);
输出
控制台输出如下 −
23
现在假设出于某些技术原因,你将 being对象的 male 属性更改为 female 或其他内容。
现在,我们的链式语句会发生什么,它将产生一个 typeError,指出无法访问 human 的未定义属性。在这种情况下,有没有办法让我们的代码不抛出任何错误。是的,这正是‘?.’也就是可选链接来拯救我们的地方。
可选链式非常简单,在正常情况下它表现得像正常的链式,但是当我们尝试访问未定义的任何属性时,它不会让我们的代码抛出一个错误,而是立即终止链式并返回未定义,以便剩下的代码块正常运行。
考虑我们上一个例子(可选链式) −
示例
const being = { human: { male: { age: 23 } } } console.log(being?.human?.female?.age);
输出
输出不会抛出错误,而是 −
undefined
广告