三种赋值运算符
1. ||=
表示逻辑或赋值运算符
let a = null
if(!a) {a = 1 } => let a = a || 1 表示a有值就取值,么有就赋值1 => 【在简写】 let a ||= 1
2. &&=
表示逻辑与赋值运算符
let a = 1
if(a){a = null} => let a = a && null表示a有值就把后面null 赋值给a => 【在简写】let a &&= null
3. 逻缉空赋值运算符
如果 为undefined 或者 null
let a;
a = a ?? 1 => a ??= 1
使用场景: 下面代码在fn2里面调用 fn1, 假如fn1里面的逻辑很多,运算复杂,那么多次调用的话会很消耗资源。
let a
function fn1() {
let b = 1;
retuen b
}
function fn2() {
a = fn1()
console.log('aaa', a)
}
fn2()
fn2()
优化: 将对a赋值优化为??= 这种语法,就只会在a为空值的时候去调用fn1, 多次调用的话 拿到的值一样,但是减少了对fn1的调用!!!
function fn2() {
a ??= fn1()
console.log('aaa', a)
}