什么是 nullish 合并运算符?
nullish 合并运算符(Nullish Coalescing Operator)是 ECMAScript 2020 的一个新特性,用于判断一个值是否为 null 或 undefined。在 JavaScript 中,null 和 undefined 都代表不存在的值,但在某些情况下,空字符串、0 和 false 也可能代表不存在的值。在这种情况下,可以使用 nullish 合并运算符来判断一个值是否真正存在。
nullish 合并运算符的语法为 ??
,它的作用是在左侧操作数为 null 或 undefined 时返回右侧操作数。例如:
const a = null ?? 'default value'; // 'default value' const b = undefined ?? 'default value'; // 'default value' const c = false ?? 'default value'; // false
在上面的代码中,变量 a 和 b 的值为 'default value',因为它们的左侧操作数是 null 或 undefined。变量 c 的值为 false,因为 nullish 合并运算符只判断 null 或 undefined,不判断空字符串、0 和 false。
与 || 运算符的区别
在 JavaScript 中,还有一个逻辑或运算符 ||
,可以用来判断一个值是否真正存在。然而,nullish 合并运算符与 || 运算符有所不同。比较它们的不同之处:
||
运算符会将左侧操作数转换成布尔类型,如果结果为 false,则返回右侧操作数。- nullish 合并运算符只有在左侧操作数为 null 或 undefined 时才返回右侧操作数。
示例代码:
const a = null || 'default value'; // 'default value' const b = undefined || 'default value'; // 'default value' const c = false || 'default value'; // 'default value' const d = '' || 'default value'; // 'default value' const e = 0 || 'default value'; // 'default value'
在上面的代码中,变量 a、b、c 的值为 'default value',因为它们的左侧操作数都可以转换成 false。变量 d、e 的值也为 'default value',因为它们的左侧操作数为空字符串和0,都可以转换成 false。
如何使用 nullish 合并运算符
在实际开发中,nullish 合并运算符可以用来设置默认值,例如:
function doSomething(options) { const value = options.value ?? 'default value'; // ... }
在上面的代码中,函数 doSomething 接收一个参数 options,其中 value 可以是 null 或 undefined。使用 nullish 合并运算符可以判断 value 是否存在,如果不存在,则使用默认值 'default value'。
总结
nullish 合并运算符是 ECMAScript 2020 中的一个新特性,用于判断一个值是否为 null 或 undefined。它与 || 运算符有所不同,只有在左侧操作数为 null 或 undefined 时才返回右侧操作数。在实际开发中,nullish 合并运算符可以用来设置默认值。了解 nullish 合并运算符,可以帮助我们更加高效地编写代码。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/649a597a48841e989473c437