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

What do comparison operators compare on arrays in javascript?

我惊讶地发现两个数组与 return 布尔值的比较 JavaScript。

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

document.write(blah < blah2);

老实说,我期待 NaN,但在我测试的每个浏览器中,我都得到了一致的 "true" 结果。我找不到任何关于比较运算符在 JS 中对数组执行的操作的文档。在这种情况下比较的是什么?

I was honestly expecting NaN

没有。比较总是 return 是 javascript 中的布尔值(当它不抛出异常时)。
如果任何操作数不可比较(如 NaN),它将 return false.

What is being compared in this case?

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

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