1

可能重复:
为什么 JavaScript 中的“,,,” == Array(4)?

在 JavaScript 中为什么

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

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

4

4 回答 4

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

转换为具有上述值的字符串,使两者相等。

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

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

请注意:

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

将导致false因为===不仅检查value而且type类型当然不同。

于 2012-06-10T18:27:56.660 回答
2

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

于 2012-06-10T18:26:30.047 回答
2

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

于 2012-06-10T18:26:48.780 回答
1

字符串形式的数组生成一个逗号分隔的元素列表,即1,2,3,4. 如果 Array 中没有元素,它将显示为,,,.

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

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

于 2012-06-10T18:28:34.880 回答