为什么“,,,”== new Array(4)

时间:2012-06-10 18:24:15

标签: javascript

  

可能重复:
  Why does “,,,” == Array(4) in Javascript?

在JavaScript中为什么

",,," == new Array(4)

在Chrome开发者工具和nodejs控制台中返回true。

4 个答案:

答案 0 :(得分:5)

console.log(new Array(4).toString()); // ",,,"

投放到字符串,其值大于等值。

",,," == ",,," // true

JS看到左边是一个字符串,右边是一个不适合比较的数组,它将数组转换为字符串,然后进行比较。

请注意:

log(",,," === new Array(4));

会产生false,因为===不仅会检查value,还会检查type,并且类型当然也不同。

答案 1 :(得分:2)

因为new Array(4)被隐式强制转换为字符串,它将等于",,,"(四个空元素,逗号分隔)。

答案 2 :(得分:2)

因为Array(4).toString()返回",,," - 4个空元素,所以只有它们之间的逗号

答案 3 :(得分:1)

String形式的数组生成逗号分隔的元素列表,即1,2,3,4。如果数组中没有元素,它将显示为,,,

(new Array(4)).toString()生成,,,

请注意new Array(4) === ",,,"返回false。