比较运算符在javascript中对数组的比较是什么?

时间:2016-02-11 00:27:15

标签: javascript arrays comparison-operators

我很惊讶地发现两个数组的比较在JavaScript中返回一个布尔值。



var blah = [1,2,3];
var blah2 = [2,3,4,5];

document.write(blah < blah2);
&#13;
&#13;
&#13;

我老实说期待NaN,但在我测试的每一个浏览器中,我都得到了一致的&#34; true&#34;结果。我无法找到有关比较运算符对JS中的数组做什么的任何文档。在这种情况下比较什么?

1 个答案:

答案 0 :(得分:0)

  

我老实说期待NaN

没有。比较总是在javascript中返回一个布尔值(当它没有抛出异常时) 如果任何操作数不具有可比性(如NaN),则返回false

  

在这种情况下进行了什么比较?

abstract relation comparison algorithm将所有参数转换为原始值以进行比较。对于数组,这会将它们转换为字符串,因此您实际上是在比较

"1,2,3" < "2,3,4,5"