js之空值合并运算符 ‘??‘

空值合并运算符(nullish coalescing operator)的写法为两个问号 ??

简单理解为当一个值既不是 null 也不是 undefined 时,我们将其称为“已定义的(defined)”。

a ?? b 是来判断a是否是已定义的,结果是:

  • 如果 a 是已定义的,则结果为 a
  • 如果 a 不是已定义的,则结果为 b

如果第一个参数不是 null/undefined,则 ?? 返回第一个参数。否则,返回第二个参数。

result = (a !== null && a !== undefined) ? a : b;

现在你应该清楚了 ?? 的作用。让我们来看看它的使用场景吧。?? 的常见使用场景是提供默认值。

例如,在这里,如果 user 的值不为 null/undefined 则显示 user,否则显示 匿名

let user; alert(user ?? "匿名");   // 匿名(user 未定义)

在下面这个例子中,我们将一个名字赋值给了 user

let user ="John";
alert(user ?? "匿名"); // John(user 已定义)

相关推荐

  1. js合并运算符 ‘??‘

    2024-07-12 23:28:01       24 阅读
  2. php合并运算符,三元运算符,PHP高级

    2024-07-12 23:28:01       33 阅读
  3. SQL语句VIEW视图和

    2024-07-12 23:28:01       34 阅读
  4. js强大的运算符:??、??=

    2024-07-12 23:28:01       30 阅读
  5. js怎么清数组?

    2024-07-12 23:28:01       43 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-12 23:28:01       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-12 23:28:01       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-12 23:28:01       58 阅读
  4. Python语言-面向对象

    2024-07-12 23:28:01       69 阅读

热门阅读

  1. 代码优化方法记录

    2024-07-12 23:28:01       23 阅读
  2. 创建I/O文件fopen

    2024-07-12 23:28:01       16 阅读
  3. 学习大数据DAY15 PLSQL基础语法4

    2024-07-12 23:28:01       14 阅读
  4. 发改委对招标投标领域问题答复汇总

    2024-07-12 23:28:01       20 阅读
  5. 使用JDBC实现事务管理与隔离级别设置

    2024-07-12 23:28:01       19 阅读
  6. SDK游戏盾、高防IP和高防CDN有什么区别

    2024-07-12 23:28:01       19 阅读
  7. docker compose down -v 是什么意思

    2024-07-12 23:28:01       20 阅读
  8. Perl文件锁机制:守护你的数据安全

    2024-07-12 23:28:01       20 阅读
  9. js面试题2024

    2024-07-12 23:28:01       19 阅读