在 JavaScript 的开发中,我们常常需要判断变量是否为 null 或者 undefined,然后采取不同的操作。在 ES12 中,Nullish Coalescing Operator(空值合并运算符)被引入,可以方便地处理这种情况。本文将介绍 Nullish Coalescing Operator 与短路运算符的异同,以及如何使用它们来提高前端开发效率。
短路运算符
在 JavaScript 中,我们可以使用短路运算符来判断变量是否为 null 或者 undefined,然后采取不同的操作。短路运算符有两个,分别是 && 和 ||。
&& 运算符
&& 运算符用于判断两个操作数是否均为 true,如果第一个操作数为 false,则直接返回 false,否则返回第二个操作数。
const a = 1; const b = 2; const c = null; console.log(a && b); // 2 console.log(a && c); // null console.log(c && b); // null console.log(c && a); // null
|| 运算符
|| 运算符用于判断两个操作数是否至少有一个为 true,如果第一个操作数为 true,则直接返回 true,否则返回第二个操作数。
const a = 1; const b = 2; const c = null; console.log(a || b); // 1 console.log(a || c); // 1 console.log(c || b); // 2 console.log(c || a); // 1
Nullish Coalescing Operator
Nullish Coalescing Operator(空值合并运算符)是一个新的运算符,用于判断变量是否为 null 或者 undefined,如果是,则返回默认值。
-- -------------------- ---- ------- ----- - - ----- ----- - - ---------- ----- - - -- ----- - - --- ------------- -- ----------- -- --------- ------------- -- ----------- -- --------- ------------- -- ----------- -- - ------------- -- ----------- -- --
Nullish Coalescing Operator 与短路运算符的异同
Nullish Coalescing Operator 与短路运算符的使用场景是不同的。短路运算符可以用于任何类型的操作数,而 Nullish Coalescing Operator 只能用于判断变量是否为 null 或者 undefined。
另外,短路运算符在判断变量是否为 false 的时候,会将 0 和 '' 等值也视为 false,而 Nullish Coalescing Operator 只会在变量为 null 或者 undefined 的时候返回默认值。
-- -------------------- ---- ------- ----- - - ----- ----- - - -- ----- - - --- ------------- -- ----------- -- --------- ------------- -- ----------- -- --------- ------------- -- ----------- -- --------- ------------- -- ----------- -- --------- ------------- -- ----------- -- - ------------- -- ----------- -- --
总结
Nullish Coalescing Operator 是一个非常实用的运算符,可以方便地处理变量为 null 或者 undefined 的情况,提高了前端开发效率。但是需要注意的是,它只能用于判断变量是否为 null 或者 undefined,而短路运算符则可以用于任何类型的操作数。在使用时需要根据实际情况选择合适的运算符。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65f7dfb1d10417a2223452ae