热搜:前端 nest neovim nvim

在JavaScript中,逻辑或(||)和 空值合并运算符(??)的区别?

lxf2023-06-02 02:12:23

逻辑或(||)和空值合并运算符(??)在 JavaScript 中有一些区别。

  1. 返回值不同:
  • 逻辑或(||)返回第一个“真”值,如果所有值都是“假”值,则返回最后一个值。
  • 空值合并运算符(??)返回第一个定义(非null和非undefined)的值。
  1. 运算符优先级不同:
  • 空值合并运算符(??)的优先级比逻辑或(||)低。这意味着,在没有使用括号的情况下,表达式会先计算逻辑或,再计算空值合并运算符。
  1. 使用场景不同:
  • 逻辑或(||)通常用于提供默认值,或在表达式中按顺序查找可用的值。例如,var value = a || b || c; 表示将 a、b 和 c 作为值查找,直到找到一个“真”值。
  • 空值合并运算符(??)通常用于提供默认值或检查一个值是否定义或为 null。例如,var value = a ?? b; 表示如果 a 为 null 或 undefined,则使用 b 作为默认值。

示例:

const a = null;
const b = 0;
const c = 'hello';


console.log(a || b || c); // 输出 hello
console.log(a ?? b ?? c); // 输出 0

在这个例子中,a 是 null,所以在逻辑或中它被视为“假”值。 b 是 0,也被视为“假”值。因此,逻辑或返回 c 的值,即“hello”。然而,使用空值合并运算符时,它返回第一个定义的值,即 0。

本网站是一个以CSS、JavaScript、Vue、HTML为核心的前端开发技术网站。我们致力于为广大前端开发者提供专业、全面、实用的前端开发知识和技术支持。 在本网站中,您可以学习到最新的前端开发技术,了解前端开发的最新趋势和最佳实践。我们提供丰富的教程和案例,让您可以快速掌握前端开发的核心技术和流程。 本网站还提供一系列实用的工具和插件,帮助您更加高效地进行前端开发工作。我们提供的工具和插件都经过精心设计和优化,可以帮助您节省时间和精力,提升开发效率。 除此之外,本网站还拥有一个活跃的社区,您可以在社区中与其他前端开发者交流技术、分享经验、解决问题。我们相信,社区的力量可以帮助您更好地成长和进步。 在本网站中,您可以找到您需要的一切前端开发资源,让您成为一名更加优秀的前端开发者。欢迎您加入我们的大家庭,一起探索前端开发的无限可能!