javeScript學習 003(資料型別轉換)
阿新 • • 發佈:2022-03-14
資料型別轉換
所有程式設計語言最重要的特徵之一是具有進行型別轉換的能力。
一,轉換成字串
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'字串