布爾判定
假:false 0 '' null undefined NaN
可選符.?和??
let obj = {name: 'jim',data: {money: 0,age: 18,fn(a){return a}}
}1、如果左側的值為null或者undefined,則使用右側值。需要使用"??"
obj?.data?.age ?? 0 => 18
obj?.data?.sex ?? 'man' => 'man'2、如果左側的值可以轉化為false,則使用右側值。需要使用"||"
obj?.data?.money || '' => ''
短路運算符
// 得到第一個為真的值,如果全部是假,得到最后一個值
eg: 0 || '' || 3 ->3
eg: 0 || 3 || '' ->3
eg: null || 0 || '' -> ''
// 得到第一個為假的值,如果全部是真,得到最后一個值
eg: 3 && 5 && '' ->''
eg: 3 && '' && 5 ->''
eg: 3 && 5 && 7 ->7
eg: a && a.b && a.b.c(被可選符替代a?.b?.c)