Ram*_*ran 14 javascript if-statement
为什么3>2>1返回false时1 < 2 < 3返回true?
console.log(1 < 2 < 3);
console.log(3 > 2 > 1);Run Code Online (Sandbox Code Playgroud)
Zen*_*noo 30
自1 < 2评估true和3 > 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为假的.
那是因为它从左到右进行评估,使其等同于以下命令:
console.log(true < 3);
console.log(true > 1);Run Code Online (Sandbox Code Playgroud)
运算符“<”和“">”结合性是从左到右的,因此
检查下面的链接 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); 答案是真的