js の異なるデータ型間の比較と変換の規則は次のとおりです:
1. オブジェクトとブール値の比較
オブジェクトとブール値を比較する場合、オブジェクトはまず文字列に変換され、次に数値に変換されます。およびブール値。数値に直接変換します
[] == true; //false []转换为字符串'',然后转换为数字0,true转换为数字0,所以为false
2. オブジェクトと文字列の比較
オブジェクトと文字列を比較する場合、オブジェクトは文字列に変換されてから 2 つが比較されます。
[1,2,3] == '1,2,3' // true [1,2,3]转化为'1,2,3',然后和'1,2,3', so结果为true;
3. オブジェクトと数値の比較
オブジェクトと数値を比較する場合、まずオブジェクトが文字列に変換され、次に数値に変換されてから数値と比較されます。
[1] == 1; // true `对象先转换为字符串再转换为数字,二者再比较 [1] => '1' => 1 所以结果为true
4. 文字列と数値の比較
文字列と数値を比較する場合、文字列を数値に変換してから 2 つを比較します。
'1' == 1 // true
5.文字列とブール値の比較
文字列とブール値を比較する場合、両方を数値に変換して比較します。
'1' == true; // true
6. ブール値と数値の比較
ブール値と数値を比較する場合、ブール値を数値に変換して両者を比較します。
true == 1 // true
JS を初めて使用する多くの子供たちは、あまりにも多くの変換ルールを見て混乱します。実際、ルールは非常に簡単です。この絵を書き留めることができます (私の優れた描画スキルを披露する時です)。
図に示すように、2 つの型を比較するときに、それらが同じ型でない場合は、図に示すように、対応する型変換を実行します。たとえば、オブジェクトとブール値を比較する場合、オブジェクト => 文字列 => 数値になります。 value ブール値 => 数値。さらに、「特別な注意」が必要なものをいくつか見てみましょう。
興味深い質問を見てみましょう[] == false; ![] == false;
他にも次のような覚えておくべきことがあります:
undefined == null //true undefined和null 比较返回true,二者和其他值比较返回falseNumber(null) //0