前言
在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 = ;
a = String(a);
2)toString()的方法來進行轉換(包裝類)
var a = ; 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 = '';
a=+a;
加減乘除以及最餘都可以讓字元串隐式轉換成number。
2.2 轉string
var a = ;
a = a + '';
2.3 轉boolean
var a = ;
a = !!a;
三、值類型之間的資料類型轉換
3.1 數字和字元串使用+運算符
數字和字元串如果使用+運算符進行操作,那麼會将數字先轉換為字元串,然後進行
字元串連接配接操作:
var text = 'asd';
var num = ;
alert(text+num);
3.2 布爾值參與的+運算符操作
如果有布爾型參與,那麼首先會将布爾值轉換為對應的數字或者字元串,然後再進行相應的
字元串連接配接或者算數運算。
var bool = true;
var num = ;
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”轉換成數字,然後再進行比較。
console.log("1"==true);
上面的代碼會分别将”1”和true轉換成數字,然後進行比較。