在 JavaScript 中为什么
",,," == new Array(4)
它在 Chrome 开发者工具和 nodejs 控制台中返回 true。
在 JavaScript 中为什么
",,," == new Array(4)
它在 Chrome 开发者工具和 nodejs 控制台中返回 true。
console.log(new Array(4).toString()); // ",,,"
转换为具有上述值的字符串,使两者相等。
",,," == ",,," // true
JS看到左边是一个字符串,右边是一个不利于比较的数组,它将数组转换为字符串然后进行比较。
请注意:
log(",,," === new Array(4));
将导致false
因为===
不仅检查value
而且type
类型当然不同。
因为new Array(4)
被隐式转换为字符串,这将等于",,,"
(四个空元素,逗号分隔)。
因为Array(4).toString()
返回",,,"
- 4 个空元素,所以它们之间只有逗号
字符串形式的数组生成一个逗号分隔的元素列表,即1,2,3,4
. 如果 Array 中没有元素,它将显示为,,,
.
(new Array(4)).toString()
产生,,,
.
请注意,new Array(4) === ",,,"
返回 false。