为什么这是真的?:
console.log(100 < 210 < 200); // outputs true
为什么这是真的?:
console.log(100 < 210 < 200); // outputs true
这相当于:
console.log((100 < 210) < 200);
这相当于:
console.log(true < 200);
而这个计算结果为true
因为使用运营商如<
时,true
被视为好像它是一个1
因此,下面将评估为false
:
console.log(true < 0)
100 < 210 < 200
相当于(100 < 210) < 200
wh ich是true < 200
这是1 < 200
这是true
。
最后一点(true
变成1
)可能有点令人惊讶。这是JavaScript如何执行关系操作(规范的Section 11.8.5)的结果,其中说除了其他事项之外,如果关系在非数字(null
或undefined
以外)和数字之间,则将非数字转换为数,以及true
为数字结果1
转换(规范的Section 9.3。)
看到:[http://meta.stackexchange.com/questions/92074/what-can-i-do-when-越来越-IT-不 - 不见面,我们的质量,标准] –