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

高洛峰
リリース: 2016-11-26 13:19:20
オリジナル
1292 人が閲覧しました

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


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!