为什么(1<;NaN)在JavaScript中为false?
为什么为什么(1<;NaN)在JavaScript中为false?,javascript,Javascript,为什么(1
(1
返回false
,而不是未定义的(在JavaScript中)
在“11.8.5抽象关系比较算法”中指出,如果其中一个值为NaN(在我看来,TopPrimitive和ToNumber之后不应影响NaN),则结果为未定义
在FF和Chrome中,我得到:
console.log(1 < NaN);
// false
console.log(1
为什么会这样?因为在问题中引用规范的+1.:-)您肯定应该研究Javascript的false/NaN/0/undefined/“”/null问题。这是一种极不一致的语言,也是这种语言最严重的缺陷之一。@SF:如果它真的很严格,人们会抱怨它。:-)规则并不是那么糟糕,事实上,这个特定的示例与false/NaN/0/undefined/“”/null无关。更重要的是,规范中的这一部分说明了关系是如何工作的,但是您必须查看其他地方,以了解在引用的部分中完成了工作后,实际的操作员所做的事情就更多了。