ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript_javascript スキルにおける演算子 == および === の紹介

JavaScript_javascript スキルにおける演算子 == および === の紹介

WBOY
WBOYオリジナル
2016-05-16 16:23:001259ブラウズ

JavaScript では、== 演算子と === 演算子の両方を使用して 2 つの値が等しいかどうかを判断できます。違いは、2 つの値の型が一致しない場合、=== 演算子は直接 false を返すことです。 while == 演算子は型変換後に判定されます。詳細な判定ルールは以下のとおりです。

=== 演算子の判定ルール

1. 2 つの値の型が一致しない場合は false を返します。
2. 2 つの値が同じ型および同じ値である場合、true を返します。 NaN は特殊なケースで、NaN===NaN は false を返します。
3. 2 つの値が両方ともオブジェクト型の場合は、Java と同様に、2 つの参照が一致しない限り (参照が同じオブジェクト アドレスを指している場合)、オブジェクト内の内容がまったく同じであっても、 2 つの値は矛盾しているとみなされ、対応する操作が実行されると false が返されます。たとえば、まったく同じ内容を持つ 2 つの新しい配列を作成し、それらに対して === 演算を実行すると、戻り結果は false になります。内容はまったく同じですが、2 つの異なるオブジェクトに属していることに変わりはありません。
4.0===-0 は true を返します。

==演算子の判定ルール

== 演算子は、比較の前に値の型を変換します。型変換は、比較の前にまず数値に変換され、比較の前に最初に Date オブジェクトが文字列に変換されます。具体的な判定ルールは以下のとおりです。

1. 2 つの値の型が一致する場合は、=== 演算を実行して戻ります。
2.null==未定義は true です。
3. true は比較前に 1 に変換され、false は比較前に 0 に変換されます。
4. 値の 1 つがオブジェクトである場合は、Date オブジェクトを除き、比較する前に数値に変換します。
5. 値の 1 つが Date オブジェクトである場合は、比較する前に文字列に変換します。

実験

コードをコピーします コードは次のとおりです:

console.log("3" === 3);//false
console.log(NaN === NaN);//false
var a = {x:1, y:2};
var b = {x:1, y:2};
var c = a;
console.log(a === b);//false
console.log(a === c);//true
console.log(0 === -0);//true

console.log("3" == 3);//true
console.log(null == 未定義);//true
console.log(true == 1);//true
console.log(true == 9);//false

console.log([9] == 9);//true
console.log([9] == "9");//true

var d = new Date();
var s = d.toString();
var n = d.valueOf();
console.log(d == s);//true
console.log(d == n);//false

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