js 基本功3

140 阅读1分钟
三种赋值运算符

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  // 当 a 为undefined 或者null ,那么就会赋值为1   【0的话不会赋值!!!】

使用场景: 下面代码在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)
}