【发布时间】:2016-02-11 00:27:14
【问题描述】:
我惊讶地发现两个数组的比较在 JavaScript 中返回一个布尔值。
var blah = [1,2,3];
var blah2 = [2,3,4,5];
document.write(blah < blah2);
老实说,我期待 NaN,但在我测试的每个浏览器中,我都得到了一致的“真实”结果。我找不到任何关于比较运算符对 JS 中的数组的作用的文档。在这种情况下比较的是什么?
【问题讨论】:
-
数组被强制转换为字符串值,这实质上意味着调用
.join()并比较结果。 -
您期望 NaN 作为小于运算符的结果?所以你确实认为像 42 is NaN 而不是 666?
-
比较运算符永远不会返回
NaN,它们总是返回一个布尔值。NaN < NaN返回false。 -
@Pointy 如果你把它作为答案,我会选择它。
-
@TobotRobot 谢谢 - 我一直在寻找一个副本,但我找不到一个好的。对于“JavaScript 关系运算符之谜”,我们确实需要一个全面的、易于理解的超级问题。
标签: javascript arrays comparison-operators