可能是重复问题:
你能解释为什么++[[]][+[]]+[+[]]=10吗?
我想了几天,我知道 JavaScript 中的一元加号首先将其操作数转换为数字。我将 + 应用于一个空数组,然后得到以下结果:
+[] == 0
当我执行以下操作时:
+[1] == 1
但是:
+[1,2] == NaN
最后两个问题几乎都很清楚了,但是为什么空数组等于0?!这与以下内容有关:
[] == false
有时候ECMAScript让我感到很困惑...
alert([![]+[]][+[]][+[]]+[![]+[]][+[]][+!+[]]+[!+[]+[]][+![]][+![]]+[![]+[]][+[]][+!+[]]+[![]+[]][+[]][+!+[]+!+[]]+' '+(![]+[])[+[]]+(![]+[])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]);
最好的问候!