小于或等于运算符:使用 NaN

当我们使用小于或等于运算符时,这是在抽象关系比较算法的幕后工作。例如。


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。这对我来说很有趣,这是什么原因?


qq_遁去的一_1
浏览 163回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript