📜  JavaScript 空值合并运算符(1)

📅  最后修改于: 2023-12-03 14:42:37.262000             🧑  作者: Mango

JavaScript 空值合并运算符

介绍

空值合并运算符是 JavaScript 中的一个新特性,用于简化对变量或表达式的空值检查。它允许你在一行代码中将多个变量的值进行比较,并返回第一个非空/未定义的值。

result = a ?? b;

上述代码中,ab 是要比较的两个值。如果 a 是非空/未定义的,则返回 a 的值;否则,返回 b 的值。

在之前,我们经常使用逻辑或运算符 || 来执行类似的操作,但它有一个缺陷,即当 a 的值为假值(例如 0false''),也会返回 b 的值。而空值合并运算符只会在 a 的值为 nullundefined 时,返回 b 的值。

示例
使用空值合并运算符
const name = null;
const defaultName = "John Doe";

const result = name ?? defaultName;

console.log(result);  // 输出:John Doe

上述代码中,name 的值为 null,所以根据空值合并运算符的规则,返回了 defaultName 的值。

空值合并运算符和逻辑或运算符的比较
const numA = 0;
const numB = 10;
const resultA = numA ?? numB;
const resultB = numA || numB;

console.log(resultA);  // 输出:0
console.log(resultB);  // 输出:10

在这个示例中,numA 的值为 0。根据空值合并运算符的规则,返回了 numA 的值。而逻辑或运算符 || 返回的是第一个真值(非零值),所以会返回 numB 的值。

注意事项
  • 当使用空值合并运算符时,要注意运算符的优先级。在需要的情况下,可以使用括号来明确优先级。

  • 空值合并运算符在处理对象时并不会遍历对象的原型链,只会检查对象自身的属性值。

支持度

空值合并运算符在以下 JavaScript 版本中得到支持:

  • ECMAScript 2020 (ES11) 和更新版本

对于旧版本的 JavaScript,可以使用其他方式来实现类似的功能,例如使用逻辑或运算符 || 结合条件语句来进行空值检查。

总结

空值合并运算符是 JavaScript 中的一个实用特性,可以简化对变量或表达式的空值检查。它在处理 nullundefined 值时非常有用,避免了繁琐的条件语句。使用空值合并运算符可以让代码更简洁、易读,并提高开发效率。

了解和掌握空值合并运算符将有助于你在 JavaScript 中更好地处理可能为空的值,并减少错误和异常。