Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript数组到数字_Javascript - Fatal编程技术网

JavaScript数组到数字

JavaScript数组到数字,javascript,Javascript,可能重复: 几天来我一直在想一些事情……我知道JavaScript中的一元加号首先将其操作数转换为数字。我将+应用于一个空数组,得到以下结果: +[] == 0 当我这样做时: +[1] == 1 但是: 最后两件事很清楚,但为什么空数组是0?! 这是否与: [] == false 有时候ECMAScript让我很好奇 alert([![]+[]][+[]][+[]]+[![]+[]][+[]][+!+[]]+[!+[]+[]][+![]][+![]]+[![]+[]][+[]][+!+

可能重复:

几天来我一直在想一些事情……我知道JavaScript中的一元加号首先将其操作数转换为数字。我将+应用于一个空数组,得到以下结果:

+[] == 0
当我这样做时:

+[1] == 1
但是:

最后两件事很清楚,但为什么空数组是0?! 这是否与:

[] == false
有时候ECMAScript让我很好奇

alert([![]+[]][+[]][+[]]+[![]+[]][+[]][+!+[]]+[!+[]+[]][+![]][+![]]+[![]+[]][+[]][+!+[]]+[![]+[]][+[]][+!+[]+!+[]]+' '+(![]+[])[+[]]+(![]+[])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]);

致以最良好的祝愿

数组的字符串化形式是空字符串:

> [].toString()
""
一元运算符
+
转换为
Number
对象,因此,它将空字符串转换为
0

> Number("")
0

这就解释了为什么
+[]==0
是正确的。

最后,我发布了一篇关于
+[]==0
@pimvdb的解释,它只是有病。。。回答得很好,谢谢!回答得好!
> Number("")
0