优秀的编程知识分享平台

网站首页 > 技术文章 正文

前端面试: js中双问号和问号加点的含义

nanyue 2024-10-16 11:04:19 技术文章 10 ℃

?? 和 ?. 是 ES2020 新增的两个操作符。

?? 是空值合并运算符,用于处理变量可能为 null 或 undefined 的情况。

它的作用是,如果左侧表达式的值为 null 或 undefined,则返回右侧表达式的值,否则返回左侧表达式的值。

例如:

const foo = null ?? 'bar'; // foo 的值为 'bar'
const baz = 'baz' ?? 'qux'; // baz 的值为 'baz'
const quux = undefined ?? 'quux'; // quux 的值为 'quux'

?. 是可选链操作符,用于简化访问对象属性的代码。

它的作用是,如果左侧表达式的结果为 null 或 undefined,则不会继续访问该表达式的下一级属性,而是直接返回 undefined。

例如:

const person = {
  name: 'Alice',
  age: 20,
  address: {
    city: 'New York',
    state: 'NY',
  },
};

const city = person.address?.city; // city 的值为 'New York'
const country = person.address?.country; // country 的值为 undefined

在这个例子中,如果 person.address 不存在,那么 person.address.country 的访问就会抛出错误。但是使用 ?. 操作符,如果 person.address 不存在,就会直接返回 undefined,避免了抛出错误。

#挑战30天在头条写日记#

最近发表
标签列表