奇怪的语法,JavaScript中的“?。”是什么意思?

让我们尝试理解“?”。举个例子。

请看以下描述23岁男性的对象示例-

const being = {
   human: {
      male: {
         age: 23
      }
   }
};

现在,我们要访问此对象的age属性。很简单,对吧?我们将像下面的代码一样使用链接来访问-

示例

const being = {
   human: {
      male: {
         age: 23
      }
   }
};
console.log(being.human.male.age);

输出结果

控制台输出如下-

23

现在,假设您出于某种技术原因将对象的财产男性更改为女性或其他。

现在我们的链接语句发生了什么,它将产生一个typeError,表明无法访问人类未定义的属性。在这种情况下,是否存在使我们的代码不引发任何错误的方法?是的,这是“?”。aka可选链帮助我们解救。

可选链接的作用非常简单,它在正常情况下的行为类似于常规链接,但是当我们尝试访问未定义的任何属性而不是使我们的代码抛出错误时,它将终止链接,然后返回未定义,以便其余的代码块正常运行。

考虑我们的最后一个示例(可选链接)-

示例

const being = {
   human: {
      male: {
         age: 23
      }
   }
}
console.log(being?.human?.female?.age);

输出结果

而不是抛出错误,输出将是-

undefined
猜你喜欢