怎么回事呢?

时间:2011-08-21 08:41:03

标签: javascript

  

可能重复:
  Why does (0 < 5 <3) return true?

为什么这是真的?:

console.log(100 < 210 < 200); // outputs true

2 个答案:

答案 0 :(得分:3)

这相当于:

console.log((100 < 210) < 200);

相当于:

console.log(true < 200);

此评估结果为true,因为在使用<等运算符时,true被视为1

因此,以下内容将评估为false

console.log(true < 0)

答案 1 :(得分:2)

100 < 210 < 200相当于(100 < 210) < 200 true < 2001 < 200true

最后一点(true成为1)可能有点令人惊讶。这是JavaScript执行关系操作(规范的Section 11.8.5)的结果,其中说明了如果关系是非数字(nullundefined除外)和数字一样,您将非数字转换为数字,而true转换为数字会产生1(规范的Section 9.3。)