所以在大多数情况下,我已经能够使用类似于这些行的东西,但是Javascript给了我这个奇怪的结果。
如果我取一些值并且结果是未定义的,则与整数相比,它看起来不会小于或大于任何数字。这是为什么?
if(undefined < 1 || undefined >= 1)
alert("yes");
else
alert("no");
//this always alerts no
答案 0 :(得分:14)
JavaScript中没有operator '<' can not be applied to type 'undefined'
错误,就像在其他类型语言中找到的那样。因此,JavaScript使用 false 的运算符评估不兼容类型。
答案 1 :(得分:3)
这就是javascript的工作原理。如果任何一方都无法转换为数字(字符串可以通过代码点比较:'2' < '3' && '186' < '4'
),则数字比较将返回false(适用于>
,<
,{{ 1}},<=
)。