可选链(.?)
在js中, undefined 和 null 是两个比较特殊的数据类型,是不能用点操作符去访问属性的。如下代码就会报错。
let a;
let b = a.name;
要想避免这种错误,可以用 可选链 .?
let a;
let b = a?.name;
b = a?.name?.age?.haha?.就是不报错
后面可以无限接龙下去,不论有多少属性,只要有最后可以访问到属性,访问到最终的结果,就会赋值给 b ,否则,就把undefined赋值给b.
空值合并运算符(??)
当a不等于undefined、或者null时,把 a 值赋给 b ,否则把c值赋给b。
let b;
let a = 0;
let c = {
name:'zzzz' }
b = a ?? c;
空值赋值运算符(??=)
当??=左侧的值为 null 、 undefined 的时候,才会将右侧变量的值赋值给左侧变量.其他所有值都不会进行赋值.同样在一些场景下,可以省略很多代码.
let b = '你好';
let a = 0
let c = null;
let d = ’123‘
b ??= a; // b = “你好”
c ??= d // c = '123'