布尔判定
假: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)