今天看到了一个很有意思的题目: console.log(1<2<3)和console.log(3>2>1)的运算结果分别是什么?
这道题主要在考察布尔类型的数据参与比较运算的时候是如何转换的:
在关系运算符中:如果一个操作数是布尔值,则先将其转换为数值,然后再执行比较。
我们可以做一个测试:
var result1
= 1<2 ;
console
.log(result1
);
console
.log(result1
<3);
var result2
= 3>2 ;
console
.log(result2
);
console
.log(result2
>1);
在参与比较运算的时候,true被转换成了1。
result1 结果为 true,所以result1<3相当于1<3,结果是true。
result2结果为true,result2>1 相当于1>1,结果为false。
这就不难理解为什么console.log(1<2<3)的运算结果是true,而console.log(3>2>1)的运算结果是false了。