为什么3> 2> 1返回false而1 <2 <3返回true?

Ram*_*ran 14 javascript if-statement

为什么3>2>1返回false1 < 2 < 3返回true

console.log(1 < 2 < 3);
console.log(3 > 2 > 1);
Run Code Online (Sandbox Code Playgroud)

Zen*_*noo 30

1 < 2评估true3 > 2评估以来true,您基本上是这样做的:

console.log(true < 3);
console.log(true > 1);
Run Code Online (Sandbox Code Playgroud)

true转换为1,因此结果.


Emi*_*sen 10

因为它从左到右解释,因为它试图转换为相同的类型.

1 < 2 < 3成为true < 3,因为我们正在比较数字1 < 3是真实的.

3 > 2 > 1变成了true > 1,因为我们正在比较数字被转换1 > 1为假的.


Pet*_*r B 7

那是因为它从左到右进行评估,使其等同于以下命令:

console.log(true < 3);
console.log(true > 1);
Run Code Online (Sandbox Code Playgroud)


Ven*_*nom 5

运算符“<”和“">”结合性是从左到右的,因此

检查下面的链接 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence

console.log(1 < 2 < 3) ==> console.log(true < 3)==> ( true 表示 1 )=> console.log(1 < 3); 答案是真的

console.log(3 > 2 > 1) ==> console.log(true >1)==> ( true 表示 1 )=> console.log(1 >1); 答案是假的

console.log(3 > 2 >=1) ==> console.log(true >=1)==> ( true 表示 1 )=> console.log(1 = 1); 答案是真的