1. 程式人生 > 其它 >javeScript學習 003(資料型別轉換)

javeScript學習 003(資料型別轉換)

資料型別轉換

  所有程式設計語言最重要的特徵之一是具有進行型別轉換的能力。

一,轉換成字串

  1,toString()

    a. 字串本身也能被轉換,ECMAScript定義所有物件都有toString()方法,無論他是偽物件,還是真物件。

1  var str = 'hello';
2  console.log(str.toString());    //輸出'hello'  仍是字串型別

    b. 布林值轉換為字串

1   var boo1 = false;
2   console.log(typeof boo1)       //輸出boolean,布林值資料型別
3   console.log(boo1.toString())   //輸出'false' 變為了字串型別
4   var boo2 = true; 5   console.log(typeof boo2) //輸出boolean,布林值資料型別 6   console.log(boo2.toString()) //輸出'true' 變為了字串型別   

    c. 數字裝換為字串

1   var num = 66;
2   console.log(num.toString());    //輸出'66'  變為字串型別
3   var num1 = 0;
4   console.log(num1.toString());   //輸出'0'  變為字串型別

    d. null和undefined的轉換

1   var blank = null;
2   console.log(blank.toString());    //輸出報錯,無法轉換
3   var unknown = undefined;
4   console.log(unknown.toString());    //輸出報錯,無法轉換

 

二,轉換成數字

  ECMAScript提供了整數型(parenInt)和浮點型(parentFloat)兩種把非數字的原始數值裝換為數字的方法。只有對 String 型別呼叫這些方法,它們才能正確執行;對其他型別返回的都是 NaN。

  1,parseInt()整數型

1   var Num1 = "012345hello";    
2   console.log(parseInt(Num1)) //輸出 12345 忽略開頭的零 3   var Num1 = "hello1234";       //從左至右檢測是否為數字,是數字則繼續判斷下一位直至結束輸出,
                          只要檢測出不是數字的值就輸出NaN
4   console.log(parseInt(Num1)) //輸出 NaN 5   var Num2 = parseInt("0xA"); //返回 10 八進位制和十六進位制都會轉換為十進位制,此處為十六進位制 6   var Num3 = parseInt("56.9"); //返回 56 取整數 7   var Num4 = parseInt("hello"); //返回 NaN

 

  2,parseFloat()浮點型

1   var Num1 = parseFloat("123hello");      //返回 12345
2   var Num2 = parseFloat("0xA");           //返回 NaN  浮點型無法轉換十六進位制,因為包含有x
3   var Num3 = parseFloat("11.2");          //返回 11.2  
4   var Num4 = parseFloat("11.22.33");      //返回 11.22 第一個出現的小數點是有效字元,
                             如果有兩個小數點,第二個小數點將被看作無效的。
                             parseFloat() 會把這個小數點之前的字元轉換成數字。
5   var Num5 = parseFloat("0102");   //返回 102 6   var Num6 = parseFloat("hello"); //返回 NaN

 

 

三,強制型別轉換

  1,Boolean()  轉換為布林值

    非空字串,非零數字和物件都為true;空字串,數字零,null 和 undefined則為false;

1         var str = Boolean('hello');          //非空字串 返回true
2         var str1 = Boolean('');              //空字串 返回false
3         var num = Boolean(66);               //非零數字 返回true
4         var num1 = Boolean(0);               //數字零 返回false
5         var  test = Boolean(null);           //返回false
6         var test1 = Boolean(undefined);      //返回false

 

  2,Number()  轉換為數字(可以是整數和浮點數)

    Number()和整數型(parenInt)和浮點型(parentFloat)轉換的方法類似。但是Number只能轉換整個值,對"1.2.3"這種字串會輸出NaN。

1         console.log(Number(false));       //輸出 0
2         console.log(Number(true));        //輸出 1
3         console.log(Number(null));        //輸出 0
4         console.log(Number(undefined));     //輸出 NaN
5         console.log(Number('6'));          //輸出 6
6         console.log(Number('6.6'));        //輸出 6.6
7         console.log(Number('6.6.6'));       //輸出 NaN
8         console.log(Number('hello'));       //輸出 NaN
9         console.log(Number(66));           //輸出 66

 

  3,String()  轉換為字串

    String()可以把任何值轉換為字串。它和呼叫 toString() 方法的唯一不同之處在於,對 null 和 undefined 值強制型別轉換可以生成字串而不引發錯誤:

        console.log(String(null));       //輸出'null'字串
        console.log(String(undefined));  //輸出'undefined'字串