在 JavaScript 里,空值合并操作符(??
)是一个逻辑操作符。当左侧操作数为 null
或者 undefined
时,它会返回右侧操作数;反之,则返回左侧操作数。下面为你详细介绍其使用方法与示例。
基本语法
javascript
ruby
leftExpr ?? rightExpr
代码示例
javascript
ini
// 示例 1:左侧为 null
const value1 = null;
const result1 = value1 ?? 'default value';
console.log(result1); // 输出: 'default value'
// 示例 2:左侧为 undefined
const value2 = undefined;
const result2 = value2 ?? 'default value';
console.log(result2); // 输出: 'default value'
// 示例 3:左侧为其他值
const value3 = 0;
const result3 = value3 ?? 'default value';
console.log(result3); // 输出: 0
const value4 = false;
const result4 = value4 ?? 'default value';
console.log(result4); // 输出: false
const value5 = '';
const result5 = value5 ?? 'default value';
console.log(result5); // 输出: ''
与逻辑或操作符(||
)的区别
逻辑或操作符(||
)在左侧操作数为假值(如 0
、false
、''
等)时,就会返回右侧操作数;而空值合并操作符(??
)仅在左侧操作数为 null
或者 undefined
时,才会返回右侧操作数。示例如下:
javascript
ini
// 使用逻辑或操作符
const value6 = 0;
const result6 = value6 || 'default value';
console.log(result6); // 输出: 'default value'
// 使用空值合并操作符
const value7 = 0;
const result7 = value7 ?? 'default value';
console.log(result7); // 输出: 0
空值合并操作符的链式使用
你可以链式使用空值合并操作符,以此来检查多个可能为 null
或 undefined
的值。示例如下:
javascript
ini
const a = null;
const b = undefined;
const c = 'valid value';
const result = a ?? b ?? c;
console.log(result); // 输出: 'valid value'
通过这些示例能够看出,空值合并操作符在处理可能为 null
或 undefined
的值时非常实用,能让你轻松地提供默认值。