我们回顾下基础运算符的应用,看那可能你是否还记得?
JavaScript 中存在一些特殊的运算符,如 ||=
、&&=
、??=
、?.
、??
,它们在特定的场景。
||= 逻辑或赋值运算符 (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被视为假值
&&= 逻辑与赋值运算符 (Logical AND assignment)
定义:
&&=
运算符用于指定变量在其值为真(Truthy)时才进行赋值操作。语法:
a &&= b
,意为若a为真,则将b赋值给a。使用场景: 在需要确保变量已经被定义且为真时进行赋值操作。
示例:
let a = null; let b = 15; a &&= 10; // a仍为null b &&= 20; // b现在为20
??= 逻辑空赋值运算符 (Nullish coalescing assignment)
定义:
??=
运算符用于指定变量在其值为null或undefined时才进行赋值操作。语法:
a ??= b
,意为若a为null或undefined,则将b赋值给a。使用场景:在确保一个变量不存在或其值为null时进行赋值操作。
示例:
let c = null; let d; c ??= 5; // c现在为5 d ??= 10; // d现在为10
?. 可选链运算符 (Optional chaining)
定义:
?.
运算符用于在对象链深处避免出现异常,当对象链中的某个属性为null或undefined时,避免出现错误。语法:
obj?.prop
,若obj存在且有prop属性,则返回prop属性值,否则返回undefined。使用场景:在访问深层嵌套的对象属性时,避免因为中间某个属性为null或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
?? 空值合并运算符 (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
总结
在实际的开发中,合理使用这些特殊运算符能够提高代码的可读性和健壮性,同时简化复杂的逻辑判断。但是,过度使用这些运算符也会导致代码的可读性降低,因此在使用时需要权衡利弊。
网友评论文明上网理性发言 已有0人参与
发表评论: