如果你覺得JavaScript沒什麼了不起的話,如果你認為你的JavaScript已經很厲害了,如果你想深入學習ECMAScript,請看下面的題目:
[] == ![]
parseInt(1/0,19)==18
++[[]][+[]]+[+[]] == 10
0 == +[]1 == ++[[]][+[]]2 == ++[++[[]][+[]]][+[]]3 == ++[++[++[[]][+[]]][+[]]][+[]]undefined == [][[]]Infinity == +(++[[]][+[]]+([+[][[]]]+[][[]])[++[[]][+[]]+[+[]]]+[++[[]][+[]]]+[+[]]+[+[]]+[+[]])NaN == +[][[]]"a" == "NaN"[1]"a" == (+[][[]]+[])[++[[]][+[]]]"d" == "undefined"[2]"d" == ([][[]]+[])[++[++[[]][+[]]][+[]]]"e" == "NaNundefined"[10]"e" == ([+[][[]]]+[][[]])[++[[]][+[]]+[+[]]]"f" == "undefined"[4]"f" == ([][[]]+[])[++[++[++[++[[]][+[]]][+[]]][+[]]][+[]]]"i" == "undefined"[5]"i" == ([][[]]+[])[++[++[++[++[++[[]][+[]]][+[]]][+[]]][+[]]][+[]]]"n" == "undefined"[1]"n" == ([][[]]+[])[++[[]][+[]]]"u" == "undefined"[0]"u" == ([][[]]+[])[+[]]"y" == "NaNInfinity"[10]"y" == (+[![]]+[+(++[[]][+[]]+([+[][[]]]+[][[]])[++[[]][+[]]+[+[]]]+[++[[]][+[]]]+[+[]]+[+[]]+[+[]])])[+!+[]+[+[]]]"I" == "Infinity"[0]"I" == (+(++[[]][+[]]+([+[][[]]]+[][[]])[++[[]][+[]]+[+[]]]+[++[[]][+[]]]+[+[]]+[+[]]+[+[]])+[])[+[]]"N" == "NaN"[0]"N" == (+[][[]]+[])[+[]]
參考資料:
Java/script: no alnum cheat sheets
說說為什麼 [] == ![] 為true
Why does parseInt(1/0, 19) return 18?
Can you explain why ++[[]][+[]]+[+[]] = 10