コンソール內(nèi)のjs
[[]][0]
これでエラーが報(bào)告されないのはなぜですか []
これでエラーが報(bào)告されますか
++[[]][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ù)類(lèi)型轉(zhuǎn)換(PS:Javascript中具體的數(shù)據(jù)類(lèi)型轉(zhuǎn)換太復(fù)雜了,我就不展開(kāi)了),這里Array[0]
將轉(zhuǎn)換成0
,結(jié)果++
1をゲット
詳細(xì)については、コンソール出力を參照してください:
リーリー++[]
: lvalue は空の配列であり、正當(dāng)な lvalue ではないため、エラーが報(bào)告されます。
左値とは:
左辺値は、式が代入演算子の左側(cè)にのみ現(xiàn)れることを意味する古い用語(yǔ)です。 JavaScript では、変數(shù)、オブジェクトのプロパティ、配列要素はすべて左辺値です。
私は以前にこの質(zhì)問(wèn)に回答し、直接リンクを投稿しました:
jsの型変換の問(wèn)題