ホームページ > 記事 > ウェブフロントエンド > JavaScript では「==」と「===」を使用する必要がありますか?
=== は、ほとんどの場合に使用する必要があります。x == null は、通常 null と未定義を区別しないため、x == null は x === と見なされるため、null/未定義を検出する場合にのみ使用できます。 null || x == = 未定義の略語。
== の比較は、 1 == '1' のように便利に見えますが、型について間違った仮定を立てるなど、隠れた危険も引き起こします。
例:
if (x == 10) x += 5 www.2cto.com
受信 x が文字列 '10' の場合、x の結果は '105' になります。文字列「105」は後続の操作で変換される可能性があり、それによって隠れたエラーが発生する可能性があります。
さらに、プログラマーは無意識のうちに特定の仮定に依存する場合があります。たとえば、等価比較は推移的である必要があり、a = b、b = c である必要があり、a = c と結論付けられる必要があります。しかし、JavaScript の == は推移的ではありません。たとえば、 0 == '0' 、 0 == '' ですが、 '0' != '' です。
つまり、JS の == は Java/C# の equals() ではありません。Java/C# 言語では、equals() が推移性を保証する必要があるからです。
つまり、大規模なプログラミングの場合、== の小さな便利さは、それがもたらすリスクと比較することはできません。
提案:
== を忘れて、=== を使用してください。 ==設計ミスです。型変換 (Java と同等ではありません。明確に定義されています) を実行しようとしますが、型変換のルールを覚えるのは困難です。そして推移性も壊します。
=== を使用するだけです! ==、JavaScriptを書く生活がより快適になります