ホームページ  >  記事  >  ウェブフロントエンド  >  js暗黙的変換の知識解説(例付き)

js暗黙的変換の知識解説(例付き)

不言
不言オリジナル
2018-09-20 17:04:372093ブラウズ

この記事は、JS の暗黙的な変換に関する知識を提供します (例付き)。必要な方は参考にしていただければ幸いです。

前菜

[] == ![]                  //true  ==> "" == false
123 ^ []                   //123   ==> 123 ^ 0
~{}                        //-1    ==> ~0
{} >= {1,2}                //true  ==>因为大于等于的比较,不是相等的比较,所以[object Object] >=[object Object]
[null] == ""               //true  ==> [""] == ""

注目の演算子:

  • 単項演算子: * 演算子、/ 演算子を含む Number() による変換はすべて次の関数によって変換されます。 Number()

+undefined   //NaN
  • 論理演算子:! オペランドをブール値に変換する Boolean() と同等 型変換

  • ビット演算: ~、|、&、^;1 つのオペランドが NaN の場合、オペランドが 0 であることと同等です;

//由以下变化可以证得:
NaN ^ NaN ^ NaN = 0
  • Plus 演算子、より複雑です

最高の優先順位は文字列です。文字列に追加されたオペランドはすべて String (x) として文字列になり、文字列の連結が実行されます

console.log("a" + 1);           //"a1"
console.log("a" + "1");         //"a1"
console.log("a" + false);       //"afalse"
console.log("a" + undefined);   //"aundefined"
console.log("a" + NaN);         //"aNaN"
console.log("a" + null);        //"anull"
console.log("a" + {});          //"a[object Object]"

2 番目は数値であり、オブジェクトは通常の状況では文字列型を出力します。

//console.log(1 + "1");     //"11"
console.log(1 + 1);         //2
console.log(1 + true);      //2 
console.log(1 + undefined); //NaN
console.log(1 + NaN);       //NaN
console.log(1 + null);      //1
console.log(1 + {});        //"1[object,Object]"

一方がブール値の場合、または両方がブール値の場合は、未定義および未定義の場合も同様に数値として処理されます。 null の場合、

console.log(true + true);      //2 
console.log(true + undefined); //NaN
console.log(true + NaN);       //NaN
console.log(true + null);      //1
console.log((true + [NaN]));   //"trueNaN"
  • マイナス記号の場合、両側が Number()

  • 比較演算: ==、>、< ;, >=, >=, != ルール (昇格 3 からの抜粋) に従います:

1.null と unknown は等しい
2 unfined は他の値に変換できません
3. オペランドの 1 つが NaN の場合、等価演算子は fasle を返し、不等号演算子は true を返し、NaN は NaN と等しくありません
4。両方が同じオブジェクト (同じアドレス) を指している場合、等価演算子は true を返し、そうでない場合は false を返します。

注目に値します: オブジェクト間の >= と = =(!=) の比較方法は異なります。 toString()の戻り値の比較、後者は参照アドレスの比較
両側が文字列の場合は文字エンコードサイズで比較
オペランドの一方がboolean、string、の場合またはオブジェクトの場合は、数値型の値に変換して比較します。

以上がjs暗黙的変換の知識解説(例付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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