ホームページ > 記事 > ウェブフロントエンド > JavaScriptの2と3=等号の違いは何ですか_基礎知識
1 つの等号は代入の機能です。主な問題は、2 つと 3 つの等号の違いにあります。
JavaScript における 2 つの等号と 3 つの等号の違い
簡単に言うと、== 最初に型を変換してから比較し、=== 同じ型でない場合は最初に型を決定します。直接的には偽です。
=== は等しいことを意味し、比較の両側は完全に同じである必要があります。
alert(0 == "") // true
alert(0 == false); / true
alert("" == false); // true
alert(0 === "") // false
alert(0 === false); false
alert("" === false); // false
まず === について説明します。具体的な比較ルールは次のとおりです。型が異なります。[等しくない]
2。両方が数値であり、同じ値である場合、[等しい] (!例外) は、それらの少なくとも 1 つが NaN である場合、[等しくない] です。等しい]。 (値が NaN であるかどうかを判断するには、isNaN() を使用するだけです)
3. 両方が文字列であり、各位置の文字が同じ場合は [等しい]、それ以外の場合は [等しくない]。
4. 両方の値が true または両方が false の場合、[等しい]。
5. 両方の値が同じオブジェクトまたは関数を参照している場合は [等しい]、それ以外の場合は [等しくない]。
6. 両方の値が null であるか、両方が未定義の場合、[等しい]。
== について説明します。具体的な比較ルールは次のとおりです。
1. 2 つの値の型が同じ場合、=== 比較を実行します。
2. 2 つの値の型が異なる場合、それらは等しい可能性があります。型変換を実行し、次のルールに従って比較します:
a. 一方が null で、他方が未定義の場合、[等しい]。
b. 一方が文字列で、もう一方が数値の場合、文字列を数値に変換して比較します。
c. いずれかの値が true の場合は 1 に変換して比較し、いずれかの値が false の場合は 0 に変換して比較します。
d. 一方がオブジェクトで、もう一方が数値または文字列の場合、オブジェクトを基本型の値に変換して比較します。オブジェクトは、toString メソッドまたは valueOf メソッドを使用して基本型に変換されます。 JS コアの組み込みクラスは toString の前に valueOf を試行しますが、toString 変換を使用する Date は例外です。 (もっと面倒でよくわかりませんが)
e やその他の組み合わせ (array 配列など) などの非 js コア オブジェクトは [等しくない] です。
人が出口を見つけられないとき、最善の方法は、現時点で自分がうまくできることを、誰にもできないところまで徹底的に行うことです。