ホームページ  >  記事  >  ウェブフロントエンド  >  == と === の使用法の違いを比較する

== と === の使用法の違いを比較する

巴扎黑
巴扎黑オリジナル
2017-07-24 14:00:062424ブラウズ


1. 文字列や数値などの基本型の場合、 == と === の違いがあります 1) 異なる型間の比較、compare == "同じ型に変換した後の値を参照" "値" が等しいかどうか、=== 型が異なる場合、結果は等しくありません
2) 同じ型を比較し、"値" を直接比較すると、2 つの結果は同じになります

2. 高度な配列、オブジェクトなどの場合、== と === の型に違いはありません
「ポインタアドレス」を比較します

3. == と === の違い
1) == の場合、高度な型を基本型に変換し、「値」の比較を実行します
2) 型が異なるため、=== の結果は false になります
2 つのオブジェクトが等しいかどうかを判断するときに、3 つの等号 (===) を使用する場合、2 つの等号 (==) との違いは何ですか?簡単に言うと、「==」を使用する場合、双方の型が異なる場合、JSエンジンは同じ型に変換して比較しますが、「===」は型変換を行わないため、両側は同じタイプに属しておらず、明らかに等しくありません。例:

var a = 0, b = '0';

alert((a == b) + '--' + (a === b))
この時点で表示される結果は「true–false」です。

=== 判定ルール

  1. 型が異なる場合は[等しくない]

  2. 両方が数値で同じ値の場合は[等しい]、少なくとも 1 つが NaN の場合、[等しくない]。 (値が NaN かどうかを判断するには、isNaN() を使用するだけで判断できます)

  3. 両方が文字列で、各位置の文字が同じ場合は [等しい]、それ以外の場合は [等しくない]。

  4. 両方の値が true 、または両方が false の場合、[等しい]。

  5. 両方の値が同じオブジェクトまたは関数を参照している場合は [等しい]、そうでない場合は [等しくない]。

  6. 両方の値が null であるか、両方が未定義の場合、[等しい]。

== 判定ルール:

  1. 2つの値の型が同じ場合、===比較を行います。

  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 です。

以上が== と === の使用法の違いを比較するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。