插件窝 干货文章 为什么它; LT;返回 true 但 gt; > > JavaScript 中返回 false?

为什么它; LT;返回 true 但 gt; > > JavaScript 中返回 false?

li javascript gt false 618    来源:    2024-10-21

> javascript 中返回 false?" />

嘿,javascript 粉丝!您是否曾经遇到过这样的时刻:您的代码做了一些奇怪的事情,而您却摸不着头脑?好吧,今天我给你准备了一份好东西。

看看这个:

console.log(1  2 > 1);  // false

等等,什么?第二个是假的?但是3大于2,2又大于1,对吗?那么这里发生了什么?

让我们来分解一下:

  1. javascript 从左到右读取这些比较。
  2. 对于 1
  3. 首先,它执行 1
  4. 然后它确实是
  5. 对于 3 > 2 > 1:
    • 首先,它执行 3 > 2。确实如此。
    • 然后它确实是 > 1.

现在,重点来了:当 javascript 将 true 与数字进行比较时,它会将 true 变成 1。

立即学习“Java免费学习笔记(深入)”;

所以真正发生的是:

  1. true
  2. true > 1 变成 1 > 1,这是 false.

这就是为什么我们第一个为真而第二个为假。

疯了,对吧?

那么,我们可以从中学到什么?当你进行多重比较时,最好是清楚的。您可以编写 (3 > 2) && (2 > 1),而不是 3 > 2 > 1。虽然有点长,但至少达到了你的预期。