?.可选链操作符

?.是可选链操作符,被称为安全调用运算符或者空值传递操作符(null propagation operator)。

它的作用是在访问可能为空(null或undefined)的对象的属性或者方法时,避免因为访问了空对象而导致代码抛出异常报错,而是直接返回undefined。这可以让我们在访问对象属性前先对其进行存在性检查,以避免因对象不存在而导致的错误。

例如:

const obj = {
  foo: {
    bar: {
      baz: 'hello'
    }
  }
};

// 传统的属性访问方式
if (obj && obj.foo && obj.foo.bar && obj.foo.bar.baz) {
  console.log(obj.foo.bar.baz);
}

// 使用可选链操作符的属性访问方式
console.log(obj?.foo?.bar?.baz);

在传统的属性访问方式中,我们需要使用条件判断语句来判断对象及其属性是否存在,而使用可选链操作符的属性访问方式则更加简洁,不存在的属性会直接返回undefined,我们可以使用如条件语句或者空值合并操作符来对其进行处理。

你可能感兴趣的:(javascript,开发语言)