JavaScript之JS資料型別轉換
前言
在js中,資料型別轉換分為顯式資料型別轉換和隱式資料型別轉換。
JavaScript的資料型別分為六種,分別為null,undefined,boolean,string,number,object。
object是引用型別,其它的五種是基本型別或者是原始型別。我們可以用typeof方法列印
來某個是屬於哪個型別的。不同型別的變數比較要先轉型別,叫做型別轉換,
型別轉換也叫隱式轉換。隱式轉換通常發生在運算子加減乘除,等於,還有小於,大於等。。
一、顯式資料型別轉換
1.1 轉數字(Number型別)
1)Number轉換
var a = '123';
a = Number (a);
- 如果轉換的內容本身就是一個數值型別的字串,那麼將來在轉換的時候會返回自己。
- 如果轉換的內容本身不是一個數值型別的字串,那麼在轉換的時候結果是NaN。
- 如果要轉換的內容是空的字串,那以轉換的結果是0。
- 如果是其它的字元,那麼將來在轉換的時候結果是NaN。
2)parseInt()
var a = '123';
a = parseInt(a);
- 忽略字串前面的空格,直至找到第一個非空字元,還會將數字後面的非數字的字串去掉。
- 如果第一個字元不是數字符號或者負號,返回NaN。
- 會將小數取整。(向下取整)
3)parseFloat();//浮點數(小數)
與parseInt一樣,唯一區別是parseFloat可以保留小數。
1.2 轉字串(String)
1)String()
var a = 123;
a = String(a);
2)toString()的方法來進行轉換(包裝類)
var a = 123; a = a.toString();
undefined,null不能用toString。
1.3 轉boolean型別
var a ='true'; a = Boolean(a);
注意:在進行boolean轉換的時候所有的內容在轉換以後結果都是true,
除了:false、”“(空字串)、0、NaN、undefined。
二、隱式轉換
2.1 轉Number
var a = '123';
a=+a;
加減乘除以及最餘都可以讓字串隱式轉換成number。
2.2 轉string
var a = 123;
a = a + '';
2.3 轉boolean
var a = 123;
a = !!a;
三、值型別之間的資料型別轉換
3.1 數字和字串使用+運算子
數字和字串如果使用+運算子進行操作,那麼會將數字先轉換為字串,然後進行
字串連線操作:
var text = 'asd';
var num = 123;
alert(text+num);
3.2 布林值參與的+運算子操作
如果有布林型參與,那麼首先會將布林值轉換為對應的數字或者字串,然後再進行相應的
字串連線或者算數運算。
var bool = true;
var num = 8;
console.log(bool + num);
上面的程式碼是先將true轉換為數字1,然後再進行算數加運算。
var bool = true;
var num = "8";
console.log(bool + num);
上面的布林值會被轉換為對應的字串形式”true”,然後再進行字串連線。
3.3 減法操作
如果進行減法操作,那麼兩個運算元都會先被轉換為數字,然後在進行算數運算。
var bool = true;
var num = "8";
console.log(bool - num)
true會被轉換為數字1,字串”8”會被轉換為數字8,然後進行算術運算。
乘,除,大於,小於跟減的轉換也是一樣.
3.4 ==等性運算 ###
undefined和null比較特殊,它們兩個使用==運算子返回值是true。
console.log(undefined==null);
其他值型別進行比較的時候都會將運算數轉換為數字
console.log("3"==3);
上面的程式碼會將字串”3”轉換成數字,然後再進行比較。
console.log("1"==true);
上面的程式碼會分別將”1”和true轉換成數字,然後進行比較。