ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript では「==」と「===」を使用する必要がありますか?

JavaScript では「==」と「===」を使用する必要がありますか?

高洛峰
高洛峰オリジナル
2016-11-26 13:19:201340ブラウズ

=== は、ほとんどの場合に使用する必要があります。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を書く生活がより快適になります


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