1 回答

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超7個(gè)贊
++[[]][0]
: [[]]
是一個(gè)只包含一個(gè)空數(shù)組的數(shù)組,那么根據(jù)運(yùn)算符優(yōu)先級(jí),[] > (prefix)++
,運(yùn)算[[]][0]
,得到一個(gè)空數(shù)組Array(0)
,是一個(gè)對(duì)象,并且是數(shù)組中的一個(gè)值,符合左值的條件.之后進(jìn)行(prefix)++
運(yùn)算,由于++
運(yùn)算將執(zhí)行數(shù)據(jù)類型轉(zhuǎn)換(PS:Javascript中具體的數(shù)據(jù)類型轉(zhuǎn)換太復(fù)雜了,我就不展開了),這里Array[0]
將轉(zhuǎn)換成0
,結(jié)果++
得到1.
具體可看控制臺(tái)輸出:
console.log([[]]) // > [Array(0)] console.log([[]][0]) // > []
++[]
: 左值是一個(gè)空數(shù)組,不是一個(gè)合法的左值,所以報(bào)錯(cuò).
什么是左值:
左值是一個(gè)古老的術(shù)語,它是指 表達(dá)式只能出現(xiàn)在賦值運(yùn)算符的左側(cè)。在JavaScript中,變量,對(duì)象屬性和數(shù)組元素均是左值.
添加回答
舉報(bào)