翼度科技»论坛 编程开发 JavaScript 查看内容

JavaScript 中 ?. 和 ?? 分别是什么?

9

主题

9

帖子

27

积分

新手上路

Rank: 1

积分
27
?.  和 ?? 是 JavaScript 中的两个新操作符,分别是可选链操作符(optional chaining operator)和空值合并操作符(nullish coalescing operator)。
?. 操作符

?. 可选链操作符用于访问可能为空或未定义的属性或方法,它允许我们安全地访问嵌套对象的属性,如果中间的属性为空或未定义,则不会抛出错误,而是返回 undefined。例如:
  1. const obj = {
  2.   foo: {
  3.     bar: 123
  4.   }
  5. };
  6. // 普通访问属性的方式
  7. const x = obj.foo.bar; // x = 123
  8. // 使用可选链操作符
  9. const y = obj?.foo?.bar; // y = 123
  10. // 如果对象未定义,则返回 undefined
  11. const z = undefined?.foo?.bar; // z = undefined
复制代码
?? 操作符

?? 空值合并操作符用于检查一个变量是否为 null 或 undefined,如果是,则返回一个默认值,否则返回该变量的值。与传统的逻辑运算符 || 不同,?? 只会在左侧的值为 null 或 undefined 时返回右侧的默认值,对于其他假值(如空字符串、0、false 等)并不会返回默认值,而是会返回它本身。例如:
  1. const x = undefined ?? 'default'; // x = 'default'
  2. const y = null ?? 'default'; // y = 'default'
  3. const z = 'value' ?? 'default'; // z = 'value'
复制代码
需要注意的是,?? 操作符需要在 ES11 及以上的版本才能使用。

来源:https://www.cnblogs.com/yuzhihui/p/17122071.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具