2026-10-23 22:08:15
JavaScript中的可选链操作符(?.)是ES2020引入的特性,用于简化嵌套属性或方法的访问,避免因中间值为null或undefined而导致的报错。
核心功能:
属性访问
语法:obj?.prop
当obj存在时返回obj.prop,否则返回undefined。
示例:user?.address?.city(若user或address为null/undefined,直接返回undefined而非报错)。
方法调用
语法:obj.func?.(args)
当obj.func存在时调用方法,否则返回undefined。
示例:user.getName?.()(避免user.getName未定义时报错)。
数组元素访问
语法:arr?.[index]
当arr存在时返回对应索引值,否则返回undefined。
示例:user.hobbies?.[0]?.name(安全访问嵌套数组元素)。
与传统方案的对比:
与其他操作符的配合:
注意事项:
总结:
可选链操作符通过减少冗余代码,显著提升了嵌套属性访问的安全性,尤其适合处理动态或不确定的数据结构(如API响应)。结合??操作符可进一步优化默认值逻辑,是现代JavaScript开发的重要工具。