为什么",,,"== new Array(4)

Bni*_*las 1 javascript

可能重复:
为什么Javascript中的",,,"== Array(4)?

在JavaScript中为什么这样做

",,," == new Array(4)
Run Code Online (Sandbox Code Playgroud)

它在Chrome Developer Tools和nodejs控制台中返回true.

Sar*_*raz 5

console.log(new Array(4).toString()); // ",,,"
Run Code Online (Sandbox Code Playgroud)

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

",,," == ",,," // true
Run Code Online (Sandbox Code Playgroud)

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

请注意:

log(",,," === new Array(4));
Run Code Online (Sandbox Code Playgroud)

会导致false因为===不仅检查value,而且type和类型当然是不同的.