在 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。