JavaScript中?.和??分别是什么作用和区别?
- 内容介绍
- 文章标签
- 相关推荐
本文共计580个文字,预计阅读时间需要3分钟。
目录?操作符?操作符总结??是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中的两个新操作符,分别是可选链操作符(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,如果是,则返回一个默认值,否则返回该变量的值。

