1. 文字列や数値などの基本的な型の場合、 == と === の違いがあります
1) 異なる型間の比較 == は、「同じ型に変換された値」を比較します。 「値」の等価性、=== 型が異なる場合、結果は等しくありません
2) 同じ型の比較の場合、「値」を直接比較すると、2 つの結果は同じになります
2。 Array、Object、==、===などの高度な型 違いはありません
「ポインタアドレス」を比較してください
3. 基本型と高度な型、==と===は異なります
1) ==の場合、高度な型を基本的な型に変換し、「値」の比較を実行します
2) 型が異なるため、===の結果は偽となります
時々、かどうかを判断するときに使用される3つの等号(===)が表示されます。 2 つのオブジェクトは等しいです。2 つの等号 (==) との違いは何ですか?簡単に言うと、「==」を使用する場合、双方の型が異なる場合、JSエンジンは同じ型に変換して比較しますが、「===」は型変換を行わないため、両側は同じタイプに属しておらず、明らかに等しくありません。例:
var a = 0, b = '0'; alert((a == b) + '--' + (a === b))
この時点で表示される結果は「true–false」です。
=== 判定ルール
型が異なる場合は[等しくない]
両方が数値で同じ値の場合は[等しい]、少なくとも 1 つが NaN の場合、[等しくない]。 (値が NaN かどうかを判断するには、isNaN() を使用するだけで判断できます)
両方が文字列で、各位置の文字が同じ場合は [等しい]、それ以外の場合は [等しくない]。
両方の値が true 、または両方が false の場合、[等しい]。
両方の値が同じオブジェクトまたは関数を参照している場合は [等しい]、そうでない場合は [等しくない]。
両方の値が null であるか、両方が未定義の場合、[等しい]。
== 判定ルール:
2つの値の型が同じ場合、===比較を行います。
2 つの値の型が異なる場合、それらは等しい可能性があります。型変換を実行し、次のルールに従って比較します:
一方が null で、他方が未定義の場合、[等しい]。
一方が文字列で、もう一方が数値の場合、文字列を数値に変換して比較します。
いずれかの値が true の場合は 1 に変換して比較し、いずれかの値が false の場合は 0 に変換して比較します。
一方がオブジェクトで、もう一方が数値または文字列の場合、オブジェクトを基本型の値に変換して比較します。オブジェクトは、toString メソッドまたは valueOf メソッドを使用して基本型に変換されます。 JS コアの組み込みクラスは toString の前に valueOf を試行しますが、toString 変換を使用する Date は例外です。非jsコアオブジェクト、としましょう(もっと面倒です、よくわかりません)
他の組み合わせは[等しくない]です。
true と false の変換には特別な注意を払う必要があります。例:
alert(true == 1); //ture alert(true == 2); //false, true会转换成number,也就是1,当然 1 不等于 2 //可以使用 !! 来把一个数据类型转换为boolean型 alert(true == !!2) //true,!2 === false !(!=2) = !false = true
さらに、js では、変数が論理演算で使用される場合、変数には初期値がないか、その値は0、-0、null、""、false、未定義、または NaN の場合、値は false になります。それ以外の場合、その値は true です。
以上がjsの==と===の違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。