JavaScript中?.和??分别是什么作用和区别?

2026-05-18 07:107阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计580个文字,预计阅读时间需要3分钟。

JavaScript中?.和??分别是什么作用和区别?

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

目录
  • ?. 操作符
  • ?? 操作符
  • 总结

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

?. 操作符

?.可选链操作符用于访问可能为空或未定义的属性或方法,它允许我们安全地访问嵌套对象的属性,如果中间的属性为空或未定义,则不会抛出错误,而是返回 undefined。例如:

const obj = { foo: { bar: 123 } }; // 普通访问属性的方式 const x = obj.foo.bar; // x = 123 // 使用可选链操作符 const y = obj?.foo?.bar; // y = 123 // 如果对象未定义,则返回 undefined const z = undefined?.foo?.bar; // z = undefined

?? 操作符

??空值合并操作符用于检查一个变量是否为 null 或 undefined,如果是,则返回一个默认值,否则返回该变量的值。

阅读全文

本文共计580个文字,预计阅读时间需要3分钟。

JavaScript中?.和??分别是什么作用和区别?

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

目录
  • ?. 操作符
  • ?? 操作符
  • 总结

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

?. 操作符

?.可选链操作符用于访问可能为空或未定义的属性或方法,它允许我们安全地访问嵌套对象的属性,如果中间的属性为空或未定义,则不会抛出错误,而是返回 undefined。例如:

const obj = { foo: { bar: 123 } }; // 普通访问属性的方式 const x = obj.foo.bar; // x = 123 // 使用可选链操作符 const y = obj?.foo?.bar; // y = 123 // 如果对象未定义,则返回 undefined const z = undefined?.foo?.bar; // z = undefined

?? 操作符

??空值合并操作符用于检查一个变量是否为 null 或 undefined,如果是,则返回一个默认值,否则返回该变量的值。

阅读全文