一行能裝逼的 JavaScript 代碼
(!(~+[])+{})[--[~+""][+[]]*[~+[]] + ~~!+[]]+({}+[])[[~!+[]]*~+[]]
一、js運(yùn)算符的優(yōu)先級(jí)
運(yùn)算符用紅色標(biāo)出,有一點(diǎn)可能大家會(huì)意識(shí)不到,其實(shí)中括號(hào)[]也是一個(gè)運(yùn)算符,用來(lái)通過(guò)索引訪問(wèn)數(shù)組項(xiàng),另外也可以訪問(wèn)字符串的子字符,有點(diǎn)類(lèi)似charAt方法,如:’abcd'[1] // 返回’b’。而且中括號(hào)的優(yōu)先級(jí)還是最高的哦。
[].valueOf()[]
Number("")0
繼續(xù)往上走,子表達(dá)式14:[~+[]]
有了9和10,我們來(lái)到了子表達(dá)式4,此刻它已經(jīng)長(zhǎng)這樣了:2+1, 好,我不多說(shuō)了。
2)、調(diào)用valueOf,返回自身{},
3)、不是原始類(lèi)型,調(diào)用toString,返回”[object Object]”
4)、false與”[object Object]”相加,false先轉(zhuǎn)化為字符串”false”
5)、相加得結(jié)果”false[object Object]”
如果有人瞧不起js,請(qǐng)把這段代碼發(fā)給他,如果他想知道答案,請(qǐng)把本文發(fā)給他~
評(píng)論
圖片
表情
