JSデータ型およびデータ型変換


JSデータ型変換小計
データ型
  • 最新のECMAScript規格では、7種類のデータ型
  • が定義されています.
    元のタイプ
  • Boolean
  • Null
  • Undefined
  • Number
  • String
  • Symbol

  • オブジェクト
    7.Object
    明示的なタイプ変換
  • Number関数
  • 元のタイプ変換
    数値:変換後も元の値console.log(Number(123)) //123
    文字列:数値に解析できる場合は対応する数値に変換し、そうでない場合はNaNを得る.空の文字列を0に変換console.log(Number('123')) //123 console.log(Number('123abc')) //NaN console.log(Number('')) //0
    ブール値:true変換1、false変換0console.log(Number(true)) //1 console.log(Number(false)) //0
    undefined:NaNに変換console.log(Number(undefined)) //NaN
    null:0に変換console.log(Number(null)) //0
    オブジェクトタイプ変換
  • は、オブジェクト自体のvalueOfメソッドを呼び出し、メソッドが元のタイプの値(数値、文字列、ブール)を返すと、Numberメソッドを直接使用し、後続のステップを行わない.
  • valueOfメソッドが複合タイプの値を返す場合、オブジェクト自体のtoStringメソッドが呼び出され、toStringメソッドが元のタイプの値を返す場合、この値にはNumberメソッドが使用され、後続のステップは行われません.
  • メソッドが複合タイプの値を返す場合、エラーが報告されます.toString原理フロー:console.log(Number({a:1})) //NaN a.valueOf() //{a:1} a.toString() //"[object Object\]" Number("[object Object]") //NaN
  • String関数元のタイプ変換値:対応する文字列文字列に変換:変換後も元の値に変換ブール値:trueから'true'に、falseから'false'undefindeに:undefined'nullに変換:null'
  • に変換
    オブジェクトタイプ変換
  • は、toStringメソッドを先に呼び出し、toStringメソッドが元のタイプの数値を返す場合、stringメソッドを使用して、次のステップを行わない.
  • toStringメソッドが複合タイプの値を返す場合、valueOfメソッドが呼び出され、valueOfメソッドが元のタイプの値を返す場合、この値にはStringメソッドが使用され、次のステップは行われません.
  • メソッドが複合タイプの値を返す場合、エラーが報告されます.
  • Boolean関数
  • 元のタイプ変換
    undefined:falseに移行
    null:falseに移動
    0:falseへ
    NaN:falseへ
    '(空の文字列):falseに変換
    以上はすべてfalseに変わり、その他はtrueに変わります
    暗黙型変換
    jsでは、演算子が演算するとき、両側のデータが統一されていないとCPUが計算できないため、コンパイラは自動的に演算子の両側のデータをデータ型に変換し、同じデータ型に変換して計算する.プログラマが手動で変換する必要がなく、コンパイラによって自動的に変換される方式を暗黙的変換と呼ぶ.
  • typeof
  • valueOf typeof underfined = 'ndefined' typeof null = 'object' typeof Boolean = 'function'
  • よく見られる小さな穴
  • このような問題では、+は2つのケースに分けられます.
    文字列コネクタ:+番号の両側に文字列があり、他のデータ型呼び出しString()メソッドを文字列に変換して接続します.
    算術演算子:+記号の両方が数値で、他のデータ呼び出しNumber()メソッドを数値に変換して加算しますtypeof Number = 'function' console.log(1 + true); // :1 + Number(true) = 1 + 1 = 2 console.log(1 + 'true'); // :String(1) + 'true' = '1' + 'true' = '1true' console.log(1 + undefined)// :1 + Number(undefined) = 1 + 0 = 1
  • 大坑&%......&¥&%......(&))吐きました....