可選鏈(.?)
let a;
let b = a?.name;
.?這個(gè)東西了,其實(shí)這個(gè)就叫做可選鏈,表達(dá)的意思是只有當(dāng)a存在,同時(shí)a具有name屬性的時(shí)候,才會(huì)把值賦給b,否則就會(huì)將undefined賦值給b.重要的是,不管a存在與否,這么做都不會(huì)報(bào)錯(cuò)
空值合并運(yùn)算符(??)
let b;
let a = 0;
let c = { name:'buzhimingqianduan' }
b = a ?? c;
上面的例子,當(dāng)a除了undefined权悟、或者null之外的任何值,b都會(huì)等于a,否則就等于c.
空值賦值運(yùn)算符(??=)
let b = '你好';
let a = 0
let c = null;
let d = ’123‘
b ??= a; // b = “你好”
c ??= d // c = '123'
當(dāng)??=左側(cè)的值為null鹅心、undefined的時(shí)候,才會(huì)將右側(cè)變量的值賦值給左側(cè)變量.其他所有值都不會(huì)進(jìn)行賦值.同樣在一些場(chǎng)景下,可以省略很多代碼.