Javascript 为什么3>;2>;1返回false,而1<;2<;3返回真值?
为什么Javascript 为什么3>;2>;1返回false,而1<;2<;3返回真值?,javascript,if-statement,Javascript,If Statement,为什么3>2>1返回false,而1console.log(true>1)=>(true表示1)=>console.log(1>1); 答案为假 console.log(3>2>=1)==>console.log(true>=1)=>(true表示1)=>console.log(1=1); 答案是正确的编译器的读数如下 $console.log((11) 在第一种情况下:$console.log(1
3>2>1
返回false
,而1<2<3
返回true
console.log(1<2<3);
控制台日志(3>2>1)代码>由于1<2
的计算结果为true
,3>2
的计算结果为true
,因此您基本上在做:
console.log(true<3);
console.log(true>1)代码>,因为它从左到右进行解释,并且试图转换为相同的类型
1<2<3
变为true<3
,这是因为我们在比较数字,所以被转换为1<3
,这是真的
3>2>1
变为true>1
,这是因为我们在比较数字,所以将其转换为1>1
,这是错误的。这是因为它是从左到右求值的,使其等效于以下命令:
console.log(true<3);
console.log(true>1)代码>运算符“”的关联性是从左到右的
检查下面的链接
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);
答案是正确的编译器的读数如下
$console.log((1<2)<3)
和$console.log((3>2)>1)
在第一种情况下:$console.log(1<2<3)
第一个编译器执行1请参见运算符优先级和关联性。