javascript es 6===isの違い
2133 ワード
==equality同等 和==identity恒久など
==両方の値の種類が違っている場合、まずタイプを変えて比較します.===両方のタイプが一致しない場合、タイプを変えないと、タイプが違ってきます.
まず恒等==
1.タイプが違ったら、必ず【等しくない】
2.両方が数値型で、同じ値なら【等しい】(!例外:片方がNaNであれば【等しくない】、NaNはisNaN()関数であるかどうかを判断する)
3.両方が文字列であり、値が同じ、つまり位置ごとの文字が同じであれば、【等しい】
4.両方ともtrueか両方ともfalseであれば【等しい】
5.両方が同じオブジェクト、関数、住所などを参照すると【等しい】
6.両方ともNullまたは両方ともundefinedであれば【等しい】
それに等しい=
1.二つの値の種類が同じなら、==比較
2.2つの値の種類が違ったら、まずタイプを変えて比較します.
a.片方がnullなら もう一方はundefinedです. それでは【等しい】
b.文字列と数値がある場合、文字列を数値に変換して比較する
c.一方がtrueなら、彼を1に変えて比較しています.一方がfalseなら、彼を0に変えて比較してみます.
d.オブジェクトの場合、もう一つは数値または文字列で、オブジェクトをベースタイプに変換した値を比較します.オブジェクトをベースタイプに変換し、そのtoStringまたはvalueOf方法を利用します.jsコア内蔵クラスは、toStringより先にvalueOfを試します.例外はDateで、DateはtoString変換を利用しています.jsコア以外のオブジェクトは、別の
e.他のどのグループも【等しくない】
例えば、「1」==true //タイプは違っています.trueは先に数値1に変換して、今は「1」==1になり、「1」を1に変換して、比較1=1にして、等しいです.
を選択します
==等しい
==厳格イコール
例:
==両方の値の種類が違っている場合、まずタイプを変えて比較します.===両方のタイプが一致しない場合、タイプを変えないと、タイプが違ってきます.
まず恒等==
1.タイプが違ったら、必ず【等しくない】
2.両方が数値型で、同じ値なら【等しい】(!例外:片方がNaNであれば【等しくない】、NaNはisNaN()関数であるかどうかを判断する)
3.両方が文字列であり、値が同じ、つまり位置ごとの文字が同じであれば、【等しい】
4.両方ともtrueか両方ともfalseであれば【等しい】
5.両方が同じオブジェクト、関数、住所などを参照すると【等しい】
6.両方ともNullまたは両方ともundefinedであれば【等しい】
それに等しい=
1.二つの値の種類が同じなら、==比較
2.2つの値の種類が違ったら、まずタイプを変えて比較します.
a.片方がnullなら もう一方はundefinedです. それでは【等しい】
b.文字列と数値がある場合、文字列を数値に変換して比較する
c.一方がtrueなら、彼を1に変えて比較しています.一方がfalseなら、彼を0に変えて比較してみます.
d.オブジェクトの場合、もう一つは数値または文字列で、オブジェクトをベースタイプに変換した値を比較します.オブジェクトをベースタイプに変換し、そのtoStringまたはvalueOf方法を利用します.jsコア内蔵クラスは、toStringより先にvalueOfを試します.例外はDateで、DateはtoString変換を利用しています.jsコア以外のオブジェクトは、別の
e.他のどのグループも【等しくない】
例えば、「1」==true //タイプは違っています.trueは先に数値1に変換して、今は「1」==1になり、「1」を1に変換して、比較1=1にして、等しいです.
を選択します
==等しい
==厳格イコール
例:
var a = 3;
var b = "3"
a==b true // , , 3 ,
a===b false //
// boolean、string、number ,
1 == '01' true
1 === '01' false
'1' == '01' false
'1' === '01' false
null==null true
null===null true
undefined==null true
undefined===null false
undefined==undefined true
undefined===undefined true
NaN==NaN false
NaN===NaN false
NaN==NaN false
NaN===NaN false
//NaN ,
// , ,
[]=='' true
[]==='' false
['1','2','3']=="123" false
['1','2','3']==="123" false
['1','2','3']=="1,2,3" true
['1','2','3']==="1,2,3" false
[]==true false
[]===true false
//null undefined
let n=null
undefined
n
null
let u
undefined
u
undefined
n==u
true
n===u
false
//null undefined == true
//null,undefined false
null==[]
false
null=='1'
false
null==1
false
undefined==1
false
undefined=='1'
false
undefined==[]
false
!==と上と同じように違います.