在JavaScript中为什么
",,," == new Array(4)
在Chrome开发者工具和nodejs控制台中返回true。
答案 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。