1。JavaScriptの役割 "=="
1.両側の==の内容が文字列である場合、文字列の内容が等しいかどうかを比較します。
2。==の両側の内容が数値である場合、数値のサイズが等しいかどうかを比較します。
3。==の両側の内容がオブジェクトまたは関数の属性である場合、メモリアドレスが等しいかどうかを比較します。
2。==と===の差
==一般的な比較に使用される、===厳密な比較に使用される、==比較中にデータ型を変換できます。
例を挙げてください:
<script type = "text/javascript"> alert( "/"/"== true result is:"+( "" == true)); alert( "/"/"=== true result is:"+( "" == true)); "+(" "==)); alert("/"/" ==== "+(" "==))); alert("/"/" ==== "+(" "===)); </script>
「1」==真のタイプは異なり、 "=="タイプ変換が最初に実行され、1 to 1が変換されます。つまり、 "1" == 1;この時点で、タイプはまだ異なり、型変換を実行し続け、「1」が変換されます。つまり、1 == 1です。この時点で、「==」左右の両側のタイプは数値的であり、比較的成功しています!
"1" === true左側は文字タイプで、右側はブールタイプ、左側と右側が異なり、結果は偽です。
"1" === 1左側は文字タイプで、右側はint数値タイプで、左側と右側は異なり、結果は偽です。
実行結果:
要約:
==と==: "=="値のみの違いは、等しくする必要があります。 "==="値とタイプは等しくする必要があります。
JavaScriptの3つの等しい兆候と2つの等しい兆候の違いを詳細に説明させてください。
==平等は同等です。===アイデンティティは平等です。
==、両側に異なるタイプの値がある場合、最初にタイプ変換を実行してから比較する必要があります。
==、タイプ変換は実行されません、異なるタイプは異なる必要があります。
以下について別々に説明します。
===について話しましょう、これは比較的簡単です。
次のルールは、2つの値===が等しいかどうかを判断するために使用されます。
1.タイプが異なる場合、それらは[不平等]です
2。両方が数値値であり、同じ値である場合、[等しい]; (!例外)は、少なくともそのうちの1つがnanである場合、[等しくない]です。 (値がnanであるかどうかを判断するには、isnan()のみを使用して判断できます)
3.両方が文字列であり、各位置の文字が同じ場合、[平等];それ以外の[等しくない]。
4.両方の値が真であるか、両方が偽の場合、[等しい]。
5.両方の値が同じオブジェクトまたは関数を参照する場合、[等式];それ以外の[等しくない]。
6.両方の値がnull、または両方が未定義である場合、[等]。
次のルールに従って、==について話しましょう。
1. 2つの値タイプが同じ場合、===比較を作成します。
2。2つの値タイプが異なる場合、それらは等しい場合があります。タイプ変換は、次のルールに従って実行され、次に比較されます。
a。 1つがnullで、もう1つが未定義の場合、[等しい]。
b。 1つが文字列であり、もう1つが数値の場合は、文字列を数値に変換してから比較します。
c。値が真である場合は、1に変換して比較してください。値が偽の場合は、それを0に変換して比較します。
d。 1つがオブジェクトであり、もう1つが数値または文字列である場合、オブジェクトをベースタイプの値に変換してから比較します。オブジェクトを基本タイプに変換し、そのtoStringまたはValueofメソッドを使用します。 JS Coreビルトインクラスは、ToStringの前にValueofを試みます。例外は日付です。これは、ToString変換を使用します。非jsコアオブジェクト、
Lingshuo(私はあまり理解していません)
e。他の組み合わせは[不平等]です。
例えば:
「1」== true
タイプが異なる場合、trueは最初に値1に変換され、次に「1」== 1になり、「1」を1に変換し、等しい1 == 1を比較します。
=割り当てオペレーター
==等しい
===厳密に等しい
例:
var a = 3;
var b = "3";
a == bはtrueを返します
a === b falseを返します
AとBのタイプが異なるためです
===厳密な比較判断を下すために使用されます