運算符的擴(kuò)展
1.指數(shù)運算符(**)
這個運算符的一個特點是右結(jié)合,而不是常見的左結(jié)合。多個指數(shù)運算符連用時,是從最右邊開始計算的。
2.鏈?zhǔn)竭\算符

三元運算符?:也常用于判斷對象是否存在。

上面代碼使用了?.運算符,直接在鏈?zhǔn)秸{(diào)用的時候判斷,左側(cè)的對象是否為null或undefined。如果是的,就不再往下運算,而是返回undefined。
鏈判斷運算符?.有三種寫法。
obj?.prop // 對象屬性是否存在
obj?.[expr] // 同上
func?.(...args) // 函數(shù)或?qū)ο蠓椒ㄊ欠翊嬖?/p>
短路機(jī)制:
本質(zhì)上,?.運算符相當(dāng)于一種短路機(jī)制,只要不滿足條件,就不再往下執(zhí)行。

如果a是undefined或null,那么x不會進(jìn)行遞增運算。也就是說,鏈判斷運算符一旦為真,右側(cè)的表達(dá)式就不再求值。
3.Null判斷運算符
讀取對象屬性的時候,如果某個屬性的值是null或undefined,有時候需要為它們指定默認(rèn)值。常見做法是通過||運算符指定默認(rèn)值。但是屬性的值如果為空字符串或false或0,默認(rèn)值也會生效。為避免這種情況,引入新的 Null 判斷運算符??

只有左側(cè)是null或者undefined才會返回右側(cè)的值

浙公網(wǎng)安備 33010602011771號