JavaScriptにおける等号(==)の使い方の説明

不言
リリース: 2018-11-20 15:40:23
転載
2845 人が閲覧しました

この記事では、JavaScript での等価性 (==) の使用法について説明します。必要な方は参考にしていただければ幸いです。

Where is the magic

最近担当しているプロジェクトがフロントエンド関連だったので、jsを書いてみました。フィールドの非 null 値を処理するときに、tagert_value == '' を使用して判断すると、target_value = 0 の場合に非 null 値の検証が失敗するという非常に奇妙な現象が発生したと報告する人もいました。問題をデバッグするときに、コンソールのステータス バーで次のことを試しました。

> 0 == ''
< true
ログイン後にコピー

問題の場所がわかったようです。 。 。 ==の判定ロジックがよく分からないので、公式ドキュメントを探して見てみようと思います。

正式な説明

Equality (==, !=)

1. 2 つの式の型が異なる場合は、文字列に変換してみます。数値、またはブール値。

2、NaN はそれ自体を含むものとは等しくない。

3、負のゼロは正のゼロと等しい。

4、null は null と未定義の両方に等しい。 .

5、値 数値的に同一の文字列であれば、等しいとみなされます。 同等の数値、同じオブジェクト、同一のブール値、または (if

6、他のすべての比較は不等とみなされます。

平等に関する公式の説明を見て、最初の説明を確認しました。なぜ結果が真であるのかがわかります。式の両側の型が一致しない場合、比較メソッドはまずそれらを文字列、数値、またはブール値に変換してから比較を実行します (等しい条件: 同じ文字列、数学的に等しい数値、同じオブジェクト、同じブール値)。
これを見ると、0 == '' を比較すると、最初に型が変更されたことがわかります。次に、誰が変換されるか見てみましょう。

> Number('')
< 0

> var b= ''
> b.toString()
<'0'
ログイン後にコピー

int == string の場合、文字列はまず対応する int 値に変換されてから比較されることは明らかです。

それを回避するにはどうすればよいですか?

以下は === (厳密な等価性) の強力な紹介です。厳密に言えば、非常に強力に見えます。正式名称は Identity (===. !==) です。 『アイデンティティ』には、ちょっとしたサスペンス解決のような雰囲気があります。
公式の紹介を参照してください:

Identity (===. !==)
これらの演算子は、 型変換が行われないことを除き、型は等価演算子である必要があります。

#日々の開発において、比較式内の変数の型が一貫していることを 2 回確認できない場合は、Identify (===) を使用して一致することをお勧めします。それらが等しいかどうかを比較します。変数の型が一貫している場合は、等価 (==) を直接使用して比較できます。

以上がJavaScriptにおける等号(==)の使い方の説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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