ホームページ >ウェブフロントエンド >jsチュートリアル >なぜそうなるのか? lt; true を返しますが gt; gt; JavaScriptでfalseを返しますか?

なぜそうなるのか? lt; true を返しますが gt; gt; JavaScriptでfalseを返しますか?

WBOY
WBOYオリジナル
2024-08-21 06:05:02784ブラウズ

Why does lt; lt; eturn true but gt; gt; eturn false in JavaScript?

JavaScript ファンの皆さん!コードが何かおかしな動作をし、頭を悩ませた経験はありませんか?さて、今日は良いものを用意しました。

これをチェックしてください:

console.log(1 < 2 < 3);  // true
console.log(3 > 2 > 1);  // false

ちょっと待って、何? 2つ目は嘘ですか?でも、3 は 2 より大きく、2 は 1 より大きいですよね?それで、ここで何が起こっているのでしょうか?

詳しく見てみましょう:

  1. JavaScript はこれらの比較を左から右に読み取ります。
  2. 1 個分
  3. まず、1
  4. その場合は true < 3.
  5. 3個分> 2> 1:
    • まず、3 を実行します。> 2. そうです。
    • その場合は true > 1.

ここでキッカーです。JavaScript が true を数値と比較すると、true は 1 になります。

実際に何が起こっているのかというと、

  1. true
  2. 本当> 1が1になる> 1、これは誤りです。

これが、最初のものが true で、2 つ目のものが false になる理由です。

クレイジーですね?

それでは、ここから何を学べるでしょうか?複数の比較を行う場合は、明確にすることが望ましいです。 3 の代わりに > 2> 1 の場合、(3 > 2) && (2 > 1) と書くことができます。少し長くなりますが、少なくとも期待どおりの結果が得られます。

以上がなぜそうなるのか? lt; true を返しますが gt; gt; JavaScriptでfalseを返しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。