我很惊讶地发现两个数组的比较在JavaScript中返回一个布尔值。
var blah = [1,2,3];
var blah2 = [2,3,4,5];
document.write(blah < blah2);
&#13;
我老实说期待NaN,但在我测试的每一个浏览器中,我都得到了一致的&#34; true&#34;结果。我无法找到有关比较运算符对JS中的数组做什么的任何文档。在这种情况下比较什么?
答案 0 :(得分:0)
我老实说期待NaN
没有。比较总是在javascript中返回一个布尔值(当它没有抛出异常时)
如果任何操作数不具有可比性(如NaN
),则返回false
。
在这种情况下进行了什么比较?
abstract relation comparison algorithm将所有参数转换为原始值以进行比较。对于数组,这会将它们转换为字符串,因此您实际上是在比较
"1,2,3" < "2,3,4,5"