JavaScript-データタイプ変換

6836 ワード

データタイプ変換とは?
  • は、一つのデータタイプを他のデータタイプに変換する.
  • 例えば、NumberタイプをBooleanタイプに変換する
  • は、例えば、Numberタイプを文字列タイプ
  • に変換する.
  • 他のタイプを文字列に変換
    1、変換されたデータタイプのtoStringを呼び出す()方法
            var num1 = 10;
            var res1 = num1.toString(); //   
            console.log(res1); // 10
            console.log(typeof res1); // string
    
            var num2 = true;
            var res2 = num2.toString(); //   
            console.log(res2); // true
            console.log(typeof res2); // string
    
  • nullとundefinedの2つの値はtoString()の方法がないので、彼らの方法を呼び出したら
  • をエラーします.
            var num3 = undefined;
            var res3 = num3.toString(); //   
            console.log(res3);
    
            var num4 = null;
            var res4 = num4.toString(); //   
            console.log(res4);
    
            var num5 = NaN;
            var res5 = num5.toString();
            console.log(res5); // NaN
            console.log(typeof res5); // String
    
  • この方法は元の変数に影響を与えず、変換の結果を
  • に返す.
            var num6 = 10;
            var res6 = num6.toString();
            console.log(typeof num6); // number
            console.log(typeof res6); // string
    
  • 数値タイプのtoString()は、1つのパラメータを持って、対応する進数の値
  • を出力することができます.
            var num7 = 20;
            var res7 = num7.toString(2);
            var res8 = num7.toString(8);
            var res9 = num7.toString(10);
            var res10 = num7.toString(16);
            console.log(res7); // 10100
            console.log(res8); // 24
            console.log(res9); // 20
            console.log(res10); // 14
    
    2、変換されたデータをString()関数に導入する
  • String()関数の存在意義:
  • いくつかの値はString()がないので、このときはString()が使えます.例えば、undefinedとnull
  • NumberとBooleanについては、実際に呼び出しのtoString()方法
  • である.
            var num1 = 10;
            var res1 = String(num1); //   
            console.log(res1); // 10
            console.log(typeof res1); // string
    
            var num2 = true;
            var res2 = String(num2); //   
            console.log(res2); // true
            console.log(typeof res2); // string
    
  • は、nullおよびundefinedに対して、toString()メソッドを呼び出すことなく、内部で新しい文字列
  • を生成する.
            var num3 = undefined;
            var res3 = String(num3);
            console.log(res3); // undefined
            console.log(typeof res3); // string
    
            var num4 = null;
            var res4 = String(num4);
            console.log(res4); // null
            console.log(typeof res4); // string
    
    3、変換されたデータを+""と接続する.
  • は、任意のデータと+""を接続して、文字列
  • に変換されます.
  • 内部実装原理は、String関数と同じ
  • である.
            var num1 = 10;
            var res1 = num1 + "";
            console.log(res1); // 10
            console.log(typeof res1); // string
    
            var num2 = true;
            var res2 = num2 + "";
            console.log(res2); // true
            console.log(typeof res2); // string
    
            var num3 = undefined;
            var res3 = num3 + "";
            console.log(res3); // undefined
            console.log(typeof res3); // string
    
            var num4 = null;
            var res4 = num4 + "";
            console.log(res4); // null
            console.log(typeof res4); // string
    
    他のタイプをNumberタイプに変換します.
    1、変換されたデータをNumber()関数に伝えます.
  • 文字列-->数字
  • 純数字の文字列であれば、そのまま数字
  • に変換される.
      var str1 = "123";
      var res1 = Number(str1);
      console.log(res1); // 123
      console.log(typeof  res1); // number
    
  • 文字列に数字以外の内容がある場合、NaN
  • に変換される.
     var str2 = "123ab";
     var res2 = Number(str2);
     console.log(res2); // NaN
    
  • 文字列が空の列または空の文字列である場合、0
  • に変換される.
     var str3 = "";
     var res3 = Number(str3);
     console.log(res3); // 0
    
     var str4 = "    ";
     var res4 = Number(str4);
     console.log(res4); // 0
    
  • ブール-->数字
  • trueを1
  • に変換します.
  • falseは0
  • に回転します.
     var bool1 = true;
     var res5 = Number(bool1);
     console.log(res5); // 1
    
     var bool2 = false;
     var res6 = Number(bool2);
     console.log(res6); // 0
    
  • null-->数字-->0
     var str5 = null;
     var res7 = Number(str5);
     console.log(res7); // 0
    
  • undefined-->デジタル-->NaN
    var str6 = undefined;
    var res8 = Number(str6);
    console.log(res8); // NaN
    
  • 2、変換されたデータをパーrseInt()関数に入力する/パー秒eFloat()関数
  • Number()関数では、混合文字列が有効な整数があるかどうかにかかわらず、NaN
  • に戻ります.
  • は、パーrseInt()/parseFloat()を利用して文字列内の有効な整数を抽出することができる.
  • の違いは前者が整数しか抽出できないことであり、後者は小数
  • を抽出することができる.
  • parseInt()は文字列の整数を抽出する.
  • 無効数字
  • に遭遇するまで、最初の有効数字から開始する.
  • 第一位が有効数字でないと、何も抽出できないので、NaN
  • に戻ります.
  • 最初のパラメータは変換する文字列で、2番目のパラメータは変換するステップ
  • である.
    var str7 = "300px";
    var res9 = parseInt(str7);
    console.log(res9); // 300
    
    var str8 = "300px250";
    var res10 = parseInt(str8);
    console.log(res10); // 300
    
    console.log(parseInt("abc123"));  //  NaN,                  NaN
    console.log(parseInt(""));        //      NaN,Number("")  0
    
  • parseFloat()は文字列の小数点を抽出する.
  • は、第1の.を解析し、第2の.または非デジタル終了
  • に出会う.
  • 第一位が有効数字でないと、何も抽出できません.
  • は第二のパラメータをサポートしていません.10進数
  • だけ解析できます.
  • 解析された内容に整数がある場合、整数
  • に解析される.
     var str9 = "20.5px";
     var res11 = parseInt(str9);
     console.log(res11); // 20
    
     var str10 = "20.5.5.5px";
     var res12 = parseFloat(str10);
     console.log(res12); // 20.5
    
  • は、StringタイプではないパーrseInt()またはパーパーrseFloat()を使用し、先にStringタイプに変換してから、動作
    var str11 = true;
    var res13 = parseInt(str11); //      parseInt("true");
    console.log(res13); // NaN
    var res14 = Number(str11);
    console.log(res14); // 1
    
  • で動作する.
  • Tips
  • は、値−0*1/1に変換することによって、Number
  • に変換することができる.
        var result = 123;
        console.log(result); // 123
        result = true * 1;
        console.log(result); // 1
        result = null / 1;
        console.log(result); // 0
    
    +演算子を使ってタイプ変換を行います.
  • +番号を追加しても、データの正負性は変更されません.
  • -番号を追加すると、データの正負性が変更されます.
            var str1 = "666";
            var res1 = +str1;
            console.log(res1); // 666
            console.log(typeof res1);//number
    
            var str2 = "3.14";
            var res2 = +str2;
            console.log(res2); // 3.14
            console.log(typeof res2);//number
    
            var str3 = "666px";
            var res3 = +str3;
            console.log(res3); // NaN
            console.log(typeof res3);//number
    
            var flag = false;
            var res4 = +flag;
            console.log(res4); // 0
            console.log(typeof res4);//number
    
            var flag = true;
            var res4 = +flag;
            console.log(res4); // 1
            console.log(typeof res4);//number
    
            var str5 = "555";
            var res5 = -str5;
            console.log(res5); // -555
            console.log(typeof res5);//number