当我们使用小于或等于运算符时,这是在抽象关系比较算法的幕后工作。例如。
a <= b;
像这样转换为 JavaScript
!(b < a)
EcmaScript Spesification 说 ( http://www.ecma-international.org/ecma-262/5.1/#sec-11.8.5 ) 这表明至少有一个操作数是 NaN 小于 return undefined 这就是意义
var a = 1;
var b = "asd"
a < b // b.toNumber() => NaN and this is operation return undefined (false)
如果我们像这样使用
var a = 1;
var b = "asd"
a <= b // this convert to !(b < a) and (b<a) return undefined
// and !(undefined) must be true
但是 EcmaScript 规范说这是 return false。这对我来说很有趣,这是什么原因?
相关分类