在 Javascript 中,我们经常需要处理 null 或 undefined 值,这时候我们可以使用 Null 合并运算符(Null-coalescing operator)来简化代码。
什么是 Null 合并运算符?
Null 合并运算符的语法是 ??
,它用于判断一个值是否为 null 或 undefined,如果是,则返回默认值。
const value = undefined ?? 'default'; console.log(value); // default
上面的代码中,变量 value
的值为 undefined
,因此使用了 Null 合并运算符返回了默认值 'default'
。
和 || 运算符的区别
在 Javascript 中还有一个逻辑或运算符 ||
,它也可以用来处理 null 或 undefined 值。但是,和 Null 合并运算符相比,它存在一些区别。
首先,当使用 ||
运算符时,只有在左侧的值为 falsy 值时才会返回右侧的值。而在使用 Null 合并运算符时,只有在左侧的值为 null 或 undefined 时才会返回右侧的值。
-- -------------------- ---- ------- ----- ------ - -- -- ---------- -------------------- -- ------- ----- ------ - ---- -- ---------- -------------------- -- ------- ----- ------ - --------- -- ---------- -------------------- -- ------- ----- ------ - ----- -- ---------- -------------------- -- -----
上面的代码中,变量 value1
的值为 ''
,因此使用了 ||
运算符返回了默认值 'default'
。而变量 value2
和 value3
的值都为 null 或 undefined,因此也使用了 ||
运算符返回了默认值 'default'
。变量 value4
的值为 false
,它虽然是 falsy 值,但不是 null 或 undefined,因此没有使用 Null 合并运算符。
其次,在使用 ||
运算符时,如果左侧的值为 falsy 值,则会返回右侧的值,即使右侧的值也是 falsy 值。
const value1 = '' || false; console.log(value1); // false const value2 = null || undefined; console.log(value2); // undefined
上面的代码中,变量 value1
的值为 ''
,左侧为 falsy 值,因此返回了右侧的值 false
。变量 value2
的值为 null,左侧为 falsy 值,因此返回了右侧的值 undefined
。
使用示例
Null 合并运算符可以用来处理函数参数的默认值。在下面的例子中,函数 getFullName
接受两个参数 firstName
和 lastName
,如果其中一个参数为 null 或 undefined,则使用默认值。
-- -------------------- ---- ------- -------- ---------------------- --------- - --------- - --------- -- ------- -------- - -------- -- ------ ------ ------------- ------------- - --------------------------- -- ---- --- --------------------------------- -- ---- --- ----------------------------- ---------- -- ---- -----
在上面的代码中,使用了 Null 合并运算符来设置参数的默认值,避免了出现 null 或 undefined 值。
总结
Null 合并运算符是 Javascript 中处理 null 或 undefined 值的一种简便方法。与逻辑或运算符相比,它更加严格,并且可以用于设置函数参数的默认值等场景。同时,在使用 Null 合并运算符时,需要注意其和逻辑或运算符的区别。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/27075