我写了以下代码并没有输出。这是代码
var a1 = undefined;
var a2 = 5;
if(a1 > a2)
alert(1);
if(a1 < a2)
alert(2);
if(a1 >= a2)
alert(3);
if(a1 <= a2)
alert(4);
没有出现警告框,这意味着 if 语句导致错误。我能知道原因吗?
我写了以下代码并没有输出。这是代码
var a1 = undefined;
var a2 = 5;
if(a1 > a2)
alert(1);
if(a1 < a2)
alert(2);
if(a1 >= a2)
alert(3);
if(a1 <= a2)
alert(4);
没有出现警告框,这意味着 if 语句导致错误。我能知道原因吗?
JavaScript 尝试将值转换x为number使用 ToPrimitive (@RobG)。由于x未定义,这将返回NaN将 false 与任何值进行比较。所以它总会回来false。
正如评论中提到的@jAndy,您不能将。undefined关键字视为 value/Instanceundefined不是数字类型。相反,它undefined是Global Object
这就是表达式if(undefined {operator} {operand value})计算结果为假的原因。但考虑代码if(undefined == undefined)返回true
希望这能消除歧义!