在Javascript中返回空数组

时间:2016-03-14 17:52:54

标签: javascript

我注意到JS中的这种行为:

alert (new Array() == false); // true

有人可以解释 - 为什么?我甚至不知道如何谷歌。

修改

你想说的是new array() == [], 但为什么:

var someVar = []; 
alert (someVar == false); // true

我不明白

3 个答案:

答案 0 :(得分:7)

因为==将导致toString()在新创建的对象上被调用,并且它将返回""并且通过强制它将等于false

始终使用===

答案 1 :(得分:1)

上面的问题与在新创建的对象上调用的.ToString()方法有关,该对象返回""这在Javascript中是假的。

答案 2 :(得分:0)

好吧,new Array()返回[],这意味着空数组。空数组的计算结果为false

S,这就是为什么new Array() === false //true 这可以写成

[].toString()==false //true

toString方法连接数组元素并返回字符串,用comman分隔.Howevever,[]中没有单个元素为空 [].join()将返回"",这就是[].toString return ""

的原因

[].toString()可以写成[].join()