JS型別轉換
1.強制型別轉換
強制型別轉換指將一個數據型別強制轉換成另一種資料型別。型別轉換主要指將其他的資料型別轉換成String Number Boolean。
(1)將其他資料型別轉換成String型別
方法一:呼叫被轉換型別的toString()方法。該方法不會影響到原變數,它會將轉換的結構返回。但是注意,Null和Undefined沒有toString()方法,如果呼叫它們的方法,則會報錯。 例:將number轉換成string:
var a = 123;
a = a.toString();
方法二:呼叫String()函式。呼叫String()函式,並將被轉換的資料作為引數傳遞給函式。使用String函式做型別強制轉換時,對於Number和Boolean就是呼叫toString()方法,對於null和undefined,就不會呼叫toString()方法,它會將null直接轉換成”null”,將undefined轉換成”undefined”。 例:
var a = 123;
a = String(a);
(2)將其他的資料型別轉換為Number型別
轉換方式一:使用Number()函式
1)字串
如果是純數字的字串,則直接將其轉換為數字
var a = '123';
a = Number(a);
如果字串中有非數字的內容,則轉換為NaN。
var a = '123abc';
a = Number(a);
console.log(a);
控制檯會打印出NaN。
2)布林型別
布林型別轉換成數字:Ture轉成1;False轉成0。
3)Null
Null轉成數字0。
4)Undefined
Undefined轉成數字NaN。 轉換方式二:這種方式專門用來對付字串。 parseInt()
var a = '123abc',
b = '12.34.56ab';
a = parseInt(a);
b = parseFloat(b);
console.log(a);
console.log(b);
控制檯會輸出123和12.34。 如果對非String使用parseInt()或parseFloat(),它會將其轉換為String然後在操作。
(3)將其他的資料型別轉換為Boolean型別
使用Boolean()函式。
1)對於數字
除了0和NaN,其餘的都是true。
2)對於字串
除了空串,其餘的都是true。
3)null和undefined
對於null和undefined都是false。
4)物件
物件預設情況下都轉換為true。
2.隱式型別轉換
1)轉換為String型別
轉換為String型別:可以為任意的資料型別加一個空串的形式將其轉換為字串。
var a = 123;
a = a + ‘’;
原理和String()函式一樣。
2)轉換為Number型別
可以通過一元的 + (+0 /1 *1)來將一個其他的資料型別轉換為Number。
var a = '123'
a = +a;
原理和Number()函式一樣。
3)轉換為Boolean型別
轉換為Boolean型別:可以為一個值取兩次反來將其轉換為布林值。
var a = 10;
a = !!a;
原理和Boolean()函式一樣。