javascript技巧

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript技巧 > js中??

js中??是什么意思(示例场景)

作者:肖肖肖丽珠

?? 是一个非常有用的运算符,特别适合在需要区分 null/undefined 和其他假值的场景中使用,它可以帮助你更精确地处理默认值逻辑,本文给大家介绍js中??是什么意思,感兴趣的朋友一起看看吧

在 JavaScript 中,?? 是一个逻辑运算符,称为 空值合并运算符(Nullish Coalescing Operator)。它用于检查左侧的值是否为 null 或 undefined,如果是,则返回右侧的值;否则返回左侧的值。

语法

leftExpr ?? rightExpr

行为

示例

const value1 = null;
const value2 = undefined;
const value3 = 0;
const value4 = '';
const value5 = 'Hello';
console.log(value1 ?? 'default'); // 输出: 'default'(因为 value1 是 null)
console.log(value2 ?? 'default'); // 输出: 'default'(因为 value2 是 undefined)
console.log(value3 ?? 'default'); // 输出: 0(因为 value3 不是 null 或 undefined)
console.log(value4 ?? 'default'); // 输出: ''(因为 value4 不是 null 或 undefined)
console.log(value5 ?? 'default'); // 输出: 'Hello'(因为 value5 不是 null 或 undefined)

与 || 的区别

?? 和 || 都可以用于提供默认值,但它们的行为有所不同:

示例对比

const value1 = 0;
const value2 = '';
console.log(value1 || 'default'); // 输出: 'default'(因为 0 是假值)
console.log(value1 ?? 'default'); // 输出: 0(因为 0 不是 null 或 undefined)
console.log(value2 || 'default'); // 输出: 'default'(因为 '' 是假值)
console.log(value2 ?? 'default'); // 输出: ''(因为 '' 不是 null 或 undefined)

使用场景

示例场景

function greet(name) {
  const displayName = name ?? 'Guest';
  console.log(`Hello, ${displayName}!`);
}
greet(null);      // 输出: Hello, Guest!
greet(undefined); // 输出: Hello, Guest!
greet('Alice');   // 输出: Hello, Alice!
greet('');        // 输出: Hello, !(空字符串不是 null 或 undefined)

注意事项

// 错误示例
const result = a && b ?? c; // 语法错误
// 正确示例
const result = (a && b) ?? c;

总结

?? 是一个非常有用的运算符,特别适合在需要区分 null/undefined 和其他假值的场景中使用。它可以帮助你更精确地处理默认值逻辑。

到此这篇关于js中??是什么意思的文章就介绍到这了,更多相关js中??内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文