在 JavaScript 中,我们经常需要检查一个变量是否为 null 或者 undefined,然后才能进行下一步操作,这个过程非常的繁琐,而且容易出错。ES11 中,Nullish Coalescing Operator 的出现,让这个过程变得更加简单和方便。
Nullish Coalescing Operator 是什么?
Nullish Coalescing Operator 是一个新的操作符,也被称为双问号操作符(??),它允许我们轻松地检查一个变量是否为 null 或 undefined,并在变量为 null 或 undefined 时提供默认值。
Nullish Coalescing Operator 的语法非常简单:
const result = variable ?? defaultValue;
如果 variable 是 null 或 undefined,则 result 的值为 defaultValue,否则 result 的值为 variable 的值。
Nullish Coalescing Operator 与 || 的区别
在 JavaScript 中,|| 也可以用于提供默认值,但是 || 运算符的行为与 Nullish Coalescing Operator 有所不同。
|| 运算符在变量为 0、空字符串、false、null 或 undefined 时,都会返回默认值。而 Nullish Coalescing Operator 只在变量为 null 或 undefined 时返回默认值。
举个例子:
-- -------------------- ---- ------- ----- - - -- ----- - - --- ----- - - ------ ----- - - ----- ----- - - ---------- ------------- -- ----------- -- --------- ------------- -- ----------- -- --------- ------------- -- ----------- -- --------- ------------- -- ----------- -- --------- ------------- -- ----------- -- --------- ------------- -- ----------- -- - ------------- -- ----------- -- -- ------------- -- ----------- -- ----- ------------- -- ----------- -- --------- ------------- -- ----------- -- ---------
Nullish Coalescing Operator 的应用
Nullish Coalescing Operator 可以用于许多场景,比如为函数参数提供默认值:
-- -------------------- ---- ------- -------- ----------- ---- - ----- --------- - ---- -- ------------ ----- -------- - --- -- --- ------------------- ------------- --- --- ----------- ----- ------- - -------------- ---- -- ------ ------ --- --- -- ----- ---- ----------- ---- -- ------ ---------- --- --- -- ----- ---- ------------ ------ -- ------ ---- --- --- -- ----- ---- ----------- ------ -- ------ ---------- --- --- -- ----- ----
Nullish Coalescing Operator 还可以用于处理对象的属性:
const person = { name: 'Alice', age: null, }; console.log(person.name ?? 'Anonymous'); // Alice console.log(person.age ?? 18); // 18
总结
Nullish Coalescing Operator 是一个非常有用的操作符,可以让我们轻松地检查一个变量是否为 null 或 undefined,并提供默认值。与 || 运算符相比,Nullish Coalescing Operator 更加精确,只在变量为 null 或 undefined 时返回默认值。在实际开发中,我们可以大量地使用 Nullish Coalescing Operator,使代码更加简洁和易读。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6559acddd2f5e1655d4164b0