JavaScript array to number
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
Can you explain why ++[[]][+[]]+[+[]] = 10
我想知道有几天…我知道javascript中的一元加号首先将它的操作数转换为数字。我将+应用于空数组,得到以下结果:
1 | +[] == 0 |
当我这样做的时候:
1 | +[1] == 1 |
但是:
1 | +[1,2] == NaN |
最后两件事几乎很清楚,但为什么空数组是0?!这与以下方面有关吗?
1 | [] == false |
有时我会很好奇…
1 | alert([![]+[]][+[]][+[]]+[![]+[]][+[]][+!+[]]+[!+[]+[]][+![]][+![]]+[![]+[]][+[]][+!+[]]+[![]+[]][+[]][+!+[]+!+[]]+' '+(![]+[])[+[]]+(![]+[])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]); |
最好的问候!
空
1 2 | > [].toString() "" |
一元运算符
1 2 | > Number("") 0 |
这就解释了为什么