js中 ||=、&&=、??=、?.、?? 运算符的使用:
1、||= 逻辑或赋值运算符 (Logical OR assignment) 定义:||= 运算符用于指定变量在其值为假(Falsy)时才进行赋值操作。 语法:a ||= b,意为若a为假,则将b赋值给a。
示例:
let x = 10; let y = 0; x ||= 5; // x仍为10,因为10被视为真值 y ||= 5; // y现在为5,因为0被视为假值
2、&&= 逻辑与赋值运算符 (Logical AND assignment) 定义: &&= 运算符用于指定变量在其值为真(Truthy)时才进行赋值操作。
语法: a &&= b,意为若a为真,则将b赋值给a。
示例:
let a = null; let b = 15; a &&= 10; // a仍为null b &&= 20; // b现在为20
3、??= 逻辑空赋值运算符 (Nullish coalescing assignment) 定义:??= 运算符用于指定变量在其值为null或undefined时才进行赋值操作。
语法:a ??= b,意为若a为null或undefined,则将b赋值给a。
示例:
let c = null; let d; c ??= 5; // c现在为5 d ??= 10; // d现在为10
4、?. 可选链运算符 (Optional chaining) 定义:?. 运算符用于在对象链深处避免出现异常,当对象链中的某个属性为null或undefined时,避免出现错误。
语法:obj?.prop,若obj存在且有prop属性,则返回prop属性值,否则返回undefined。
示例:
const adventurer = { name: 'Alice', cat: { name: 'Dinah', }, }; const dogName = adventurer.dog?.name; console.log(dogName); // Expected output: undefined console.log(adventurer.someNonExistentMethod?.()); // Expected output: undefined
5、?? 空值合并运算符 (Nullish coalescing operator) 定义:?? 运算符用于在变量为null或undefined时提供默认值。
语法:a ?? b,若a为null或undefined,则返回b,否则返回a。
使用场景:在需要提供默认值的场景下,确保变量不为null或undefined。
示例:
const foo = null ?? 'default string'; console.log(foo); // Expected output: "default string" const baz = 0 ?? 42; console.log(baz); // Expected output: 0