逻辑运算符和赋值表达式

运算符??

表达式在 ?? 的左侧 运算符求值为undefinednull,返回其右侧

let json={
  a1:"",
  a2:0,
  a3:false,
  a4:null,
  a5:undefined,
  a6:"哈哈"
}
console.log(json.a1 ?? "是a1");//空的字符串
console.log(json.a2 ?? "是a2");//0
console.log(json.a3 ?? "是a3");//false
console.log(json.a4 ?? "是a4");//是a4
console.log(json.a5 ?? "是a5");//是a5
console.log(json.a6 ?? "是a6");//哈哈
当逻辑运算符(&&,||,??)和赋值表达式结合起来用

a值不存在时,将b的值赋值给a

let a=0,b=3;
a||=b;  
//相当于a=a || (a=b)
console.log(a);//3

a值存在时,将b的值赋值给a

let a=1,b=3;
//a&&=b; 
//相当于a=a && (a=b)
console.log(a);//3

a值是null或者undefined时,将b的值赋值给a

let a=null,b=3;
a??=b;    
//相当于a=a ?? (a=b)
console.log(a);//3

你可能感兴趣的:(逻辑运算符和赋值表达式)