为什么它; LT;返回 true 但 gt; > > JavaScript 中返回 false?
文章标签
true
> javascript 中返回 false?" />
嘿,javascript 粉丝!您是否曾经遇到过这样的时刻:您的代码做了一些奇怪的事情,而您却摸不着头脑?好吧,今天我给你准备了一份好东西。
看看这个:
console.log(1 2 > 1); // false
等等,什么?第二个是假的?但是3大于2,2又大于1,对吗?那么这里发生了什么?
让我们来分解一下:
- javascript 从左到右读取这些比较。
- 对于 1
- 首先,它执行 1
- 然后它确实是
- 对于 3 > 2 > 1:
现在,重点来了:当 javascript 将 true 与数字进行比较时,它会将 true 变成 1。
立即学习“Java免费学习笔记(深入)”;
所以真正发生的是:
- true
- true > 1 变成 1 > 1,这是 false.
这就是为什么我们第一个为真而第二个为假。
疯了,对吧?
那么,我们可以从中学到什么?当你进行多重比较时,最好是清楚的。您可以编写 (3 > 2) && (2 > 1),而不是 3 > 2 > 1。虽然有点长,但至少达到了你的预期。