Nullish coalescing Operator S4
中文标题:空值合并运算符
提案概览
- 阶段: Stage 4
- 状态: 已完成
- ECMAScript 版本: ES2020
- 同步时间: 2026年8月26日
- English original · 官方仓库
提案速览
本提案引入了空值合并运算符(?),在属性访问结果为 null 或 undefined 时提供默认值,避免对 0、'' 或 false 等假值产生意外行为。
Note
以下 README 来自上游仓库,其中的阶段或状态标注可能滞后;当前信息以提案概览为准。
JavaScript 的空值合并
状态
当前阶段:
- 第 4 阶段
作者
- Gabriel Isenberg (github, twitter)
- Daniel Ehrenberg (github, twitter)
- Daniel Rosenwasser (github, twitter)
概述与动机
在进行属性访问时,通常希望在属性访问的结果为 null 或 undefined 时提供默认值。目前,在 JavaScript 中表达这一意图的典型方式是使用 || 运算符。
这对于 null 和 undefined 值的常见情况效果良好,但有许多假值可能会产生令人惊讶的结果:
空值合并运算符旨在更好地处理这些情况,并作为对空值(null 或 undefined)的相等性检查。
语法
基础情况。如果 ?? 运算符左侧的表达式求值为 undefined 或 null,则返回其右侧的表达式。
说明
尽管本提案特别提到了 null 和 undefined 值,其意图是提供与可选链运算符互补的运算符。本提案将更新以匹配该运算符的语义。