ホームページ  >  記事  >  ウェブフロントエンド  >  jsでの暗黙的な変換

jsでの暗黙的な変換

高洛峰
高洛峰オリジナル
2016-10-13 11:05:591275ブラウズ

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 ブール値 => 数値。

さらに、「特別な注意」が必要なものをいくつか見てみましょう。 jsでの暗黙的な変換

興味深い質問を見てみましょう

[] == false;
![] == false;

これら 2 つの結果は true、最初の質問は、オブジェクト => 文字列 => 値 1 false は数値 1 に変換されます。これは true であり、問​​題ありません。 2 番目の前に余分な ! がある場合は、ブール値に直接変換され、ブール値に変換されると、空の文字列 ('')、NaN、0、null、および未定義になります。はすべて true を返します。つまり、[] [] => true の否定は false なので、[] == false は true になります。

他にも次のような覚えておくべきことがあります:

undefined == null //true undefined和null 比较返回true,二者和其他值比较返回falseNumber(null) //0


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