JavaScript で文字列間の等価性をチェックする正しい方法は何ですか?
ベストアンサー1
常に
==
and使用の違いと意味を完全に理解するまでは===
、===
不明瞭な (明らかでない) バグや WTF からあなたを救うため、演算子を使用してください。「通常の」==
演算子は、内部の型強制により非常に予期しない結果をもたらす可能性があるため、===
常に を使用することをお勧めします。
この点や、Javascript のその他の「良い点と悪い点」について詳しくは、Douglas Crockford 氏と彼の研究について読んでみてください。彼が多くの有益な情報をまとめた素晴らしい Google Tech Talk があります。http://www.youtube.com/watch?v=hQVTIJBZook
アップデート:
のあなたはJSを知らないカイル・シンプソンのシリーズは素晴らしいです (オンラインで無料で読むことができます)。このシリーズでは、言語のよく誤解される領域に踏み込み、クロックフォードが避けるべきと勧める「悪い部分」を説明しています。それを理解することで、言語を適切に使用し、落とし穴を避けることができます。
「上昇中「この本には、平等、loose( ==
) 演算子と strict( ===
) 演算子をいつ使用するかについての具体的な要約は次のとおりです。
たくさんの詳細をいくつかのシンプルな要点にまとめ、さまざまな状況で
==
と のどちらを使用するかを判断するのに役立つ===
、私のシンプルなルールを以下に示します。
- 比較のいずれかの値 (つまり、側) が
true
またはfalse
値になる可能性がある場合は、 を避けて==
を使用します===
。- 比較のいずれかの値がこれらの特定の値 (
0
、""
、または[]
-- 空の配列) になる可能性がある場合は、 を避けて==
を使用します===
。- それ以外の場合は、 を安全に使用できます
==
。 は安全であるだけでなく、多くの場合、コードが簡素化され、読みやすさが向上します。
Javascript を本当に理解するために時間をかけたくない開発者には、Crockford の講演を今でもお勧めします。これは、たまにしか Javascript を扱わない開発者にとって良いアドバイスです。