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"
我惊讶地发现两个数组与 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"