[ECMAScript] 第1422天 请描述下逻辑赋值操作符

141 阅读1分钟

逻辑赋值操作符是一种用于同时执行逻辑运算和赋值操作的操作符。

&&=

如果左侧操作数为 true,则将右侧操作数的值赋给左侧操作数;否则左侧操作数的值不变。

let a = 1;
let b = 0;

a &&= 2;
console.log(a);
// Expected output: 2

b &&= 2;
console.log(b);
// Expected output: 0

||=

如果左侧操作数为 false,则将右侧操作数的值赋给左侧操作数;否则左侧操作数的值不变。

const a = { duration: 50, title: '' };

a.duration ||= 10;
console.log(a.duration);
// Expected output: 50

a.title ||= 'title is empty.';
console.log(a.title);
// Expected output: "title is empty"

??=

如果左侧操作数为 null 或 undefined,则将右侧操作数的值赋给左侧操作数;否则左侧操作数的值不变。

const a = { duration: 50 };

a.duration ??= 10;
console.log(a.duration);
// Expected output: 50

a.speed ??= 25;
console.log(a.speed);
// Expected output: 25

总结

逻辑赋值操作符可以让代码更加简洁和易读。例如,可以使用 x ||= y 来替代 x = x || y,使用 y ??= x 来替代 y = y ?? x,从而避免重复输入变量名和判断条件。

更多题目

github.com/haizlin/fe-…