为什么(true> null)总是在JavaScript中返回true?

Om3*_*3ga 12 javascript

有人可以告诉我为什么以下代码在JavaScript中返回true?

console.log(true > null); //returns true
Run Code Online (Sandbox Code Playgroud)

oez*_*ezi 13

null就像false在这种情况下,这是0一个数字.true1一个数字.

1更大(>)比0.


Esa*_*ija 7

它们被转换为数字,null给出0true给出1

http://ecma-international.org/ecma-262/5.1/#sec-11.8.5

如果不是Type(px)都是String而Type(py)是String,那么

  1. nx是调用ToNumber(px)的结果.因为pxpy 是原始值,所以评估顺序并不重要.
  2. ny成为调用ToNumber(py)的结果.
Number(null) //0
Number(true) //1
Run Code Online (Sandbox Code Playgroud)