📜  JavaScript 中的逻辑无效赋值 ??=(1)

📅  最后修改于: 2023-12-03 15:16:09.508000             🧑  作者: Mango

JavaScript 中的逻辑无效赋值 ??=

在 JavaScript 中,逻辑无效赋值 ??= 运算符是一种比较新的赋值运算符,它可以用于检查 null 或 undefined 的值并在需要时进行赋值操作。本篇文章将介绍这个运算符的用法和一些巧妙的技巧。

语法

逻辑无效赋值 ??= 操作符的语法如下:

a ??= b;

它相当于以下代码:

if (a === null || a === undefined) {
  a = b;
}
举个例子

假设我们想要从一个 API 中获取某个属性的值,但是该属性有可能为 null 或 undefined。 我们可以使用逻辑无效赋值 ??= 来测试该属性,并在需要时进行赋值操作:

const response = {name: 'John', age: null};

response.name ??= 'Unknown'; // 'John', 因为 name 属性不为 null 和 undefined
response.age ??= 18; // 18,因为 age 属性为 null
response.address ??= 'N/A'; // 'N/A',因为 address 属性为 undefined
注意事项

逻辑无效赋值 ??= 运算符具有优先级。它的优先级比等式运算符低,但比条件运算符 ?: 高。因此,在使用它时一定要小心。比方说:

let x;

x = x || 10; // 如果 x 为 false,则将其赋值为 10,否则保持不变
x ??= 10; // 如果 x 为 null 或 undefined,则将其赋值为 10,否则保持不变
x = x ?? 10; // 与 x ??= 10 相同,但是优先级高于等号运算符
总结

逻辑无效赋值 ??= 运算符是一种方便的赋值运算符,它可以自动检查 null 或 undefined 的值并进行赋值操作。它在许多情况下都可以提高代码的可读性和简洁性。但是在使用时一定要注意其优先级,以免产生错误。