js的【可选链(.?)】,【空值合并运算符(??)】,【空值赋值运算符(??=)】用法和含义

可选链(.?)

在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'

猜你喜欢

转载自blog.csdn.net/u013299635/article/details/125716398