为什么0 < undefined
返回false
而不是未定义?为什么0 <undefined返回false而不是undefined?
基础上ES6规范http://www.ecma-international.org/ecma-262/6.0/#sec-abstract-relational-comparison的抽象关系比较部分,我认为它应该返回undefined。 (请点击规格明白我在说什么)
我并不完全了解ReturnIfAbrupt一部分,但它似乎并不像应该停止比较。然后我把3和4解释为基本上说,因为它使用了一个<标志,而不是一个>标志,然后继续下去。它应该忽略5,因为0和undefined都不是字符串。
所以后来就6.它说,0转换为数字,即0和未定义转换为数字应为NaN按照http://www.ecma-international.org/ecma-262/6.0/#sec-tonumber
自从1207美国“纽约如果是NaN,返回undefined “那么我为什么会得到错误而不是不确定?在Chrome,Safari和Firefox中的结果是相同的,所以我假设所有3个浏览器都不解释规范错误。
FWIW'0的NaN === FALSE'。我的猜测是''<' and '>运算符返回布尔结果要么是TRUE;或'FALSE'和'undefined'不仅不是一个值(它是一个变量),但也不能在一组布尔 –
slebetman
的BTW,最新的规范是[* ECMAScript 2016 *](http://www.ecma-international.org/ecma-262/7.0/index.html),它是ed 7.在今年年中ECMAScript ed 8 aka 2017将会被释放。 – RobG