空值合并运算符(??)用于处理 null 和 undefined 的默认值设定,相比逻辑或(||)更精确,仅在左侧为 null 或 undefined 时返回右侧值。例如:let count = 0 ?? 10; 输出 0,因 0 非 null 或 undefined;而 0 || 10 输出 10。?? 不会误判 0、''、false 等假值,适合设置合法默认值。常与可选链(?.)结合使用,如 user.profile?.name ?? '未知用户',安全访问属性并提供默认值。注意不可直接与 && 或 || 混用,需加括号避免语法错误。该操作符提升默认值处理的安全性与清晰度,适用于配置项和数据补全场景。

JavaScript中的空值合并运算符(??)是一个实用的逻辑操作符,用来处理 null 和 undefined 的默认值设定。它比传统的逻辑或(||)更精确,只在值为 null 或 undefined 时使用默认值,不会误判其他“假值”如 0、''、false。
空值合并运算符的语法很简单:如果左侧操作数是 null 或 undefined,就返回右侧的操作数;否则返回左侧的值。
let name = null ?? '游客'; console.log(name); // 输出:游客 let count = 0 ?? 10; console.log(count); // 输出:0(因为 0 不是 null 或 undefined)
对比使用 ||:
let count = 0 || 10; console.log(count); // 输出:10(因为 0 是假值)
可见,?? 更适合用于设置默认值,尤其是当合法值可能为 0 或空字符串时。
立即学习“Java免费学习笔记(深入)”;
|| 基于“假值”判断,任何假值都会触发右侧表达式。而 ?? 只关心是否为 null 或 undefined,这是关键区别。
|| 触发条件:值为 false、0、''、null、undefined、NaN
?? 触发条件:仅 null 或 undefined
因此,在设置配置项或表单默认值时,推荐使用 ?? 避免覆盖合法的假值。
空值合并常与可选链操作符搭配,安全地访问嵌套对象属性并提供默认值。
const user = {
profile: {
name: '',
age: null
}
};
let userName = user.profile?.name ?? '未知用户';
console.log(userName); // 输出:''(空字符串被保留)
let userAge = user.profile?.age ?? 18;
console.log(userAge); // 输出:18(因为 age 是 null)
这种组合能有效防止访问不存在属性时报错,并精准处理缺失值。
不能直接与 && 或 || 混用而不加括号,否则会抛出语法错误。
// 错误写法 let result = null ?? true && false; // 正确写法 let result = (null ?? true) && false; </font>
只要注意优先级,合理使用括号即可避免问题。
基本上就这些。空值合并让默认值逻辑更清晰、更安全,尤其适合现代JS开发中的配置处理和数据补全场景。不复杂但容易忽略细节。
以上就是JavaScript空值合并_逻辑运算符技巧的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号