为什么未定义小于1?

时间:2014-03-02 22:28:33

标签: javascript undefined

所以在大多数情况下,我已经能够使用类似于这些行的东西,但是Javascript给了我这个奇怪的结果。

如果我取一些值并且结果是未定义的,则与整数相比,它看起来不会小于或大于任何数字。这是为什么?

if(undefined < 1 || undefined >= 1)
    alert("yes");
else
    alert("no");

//this always alerts no

JSFiddle

2 个答案:

答案 0 :(得分:14)

JavaScript中没有operator '<' can not be applied to type 'undefined'错误,就像在其他类型语言中找到的那样。因此,JavaScript使用 false 的运算符评估不兼容类型。

答案 1 :(得分:3)

这就是javascript的工作原理。如果任何一方都无法转换为数字(字符串可以通过代码点比较:'2' < '3' && '186' < '4'),则数字比较将返回false(适用于><,{{ 1}},<=)。