強制類型轉換指將一個數據類型強制轉換為其它的數據類型。一般是指,將其它的數據類型轉換為String、Number、Boolean。
1、轉換為String類型
將其它數值轉換為字符串有三種方式:toString()、String()、 拼串。
方式一:調用被轉換數據類型的toString()方法,該方法不會影響到原變量,它會將轉換的結果返回,但是注意:null和undefined這兩個值沒有toString()方法,如果調用它們的方法,會報錯。
var a = 123;
a = a.toString();
console.log(a);
console.log(typeof a);
方式二:調用String()函數,並將被轉換的數據作為參數傳遞給函數,使用String()函數做強制類型轉換時,對於Number和Boolean實際上就是調用的toString()方法,但是對於null和undefined,就不會調用toString()方法,它會將 null 直接轉換為 “null”,將 undefined 直接轉換為 “undefined”。
var a = 123;
a = String(a);
console.log(a);
console.log(typeof a);
var b = undefined;
b = String(b);
console.log(b);
console.log(typeof b);
var c = null;
c = String(c);
console.log(c);
console.log(typeof c);
方式三:為任意的數據類型 +""
var a = 123;
a = a + "";
console.log(a);
console.log(typeof a);
2、轉換為Number類型
有三個函數可以把非數值轉換為數值:Number()、parseInt() 和parseFloat()。Number()可以用來轉換任意類型的數據,而後兩者只能用於轉換字符串。parseInt()只會將字符串轉換為整數,而parseFloat()可以將字符串轉換為浮點數。
方式一:使用Number()函數
字符串 --> 數字
如果是純數字的字符串,則直接將其轉換為數字
如果字符串中有非數字的內容,則轉換為NaN
如果字符串是一個空串或者是一個全是空格的字符串,則轉換為0
布爾 --> 數字
true 轉成 1
false 轉成 0
null --> 數字
null 轉成 0
undefined --> 數字
undefined 轉成 NaN
方式二:這種方式專門用來對付字符串,parseInt() 把一個字符串轉換為一個整數
var a = "123";
a = parseInt(a);
console.log(a);
console.log(typeof a);
方式三:這種方式專門用來對付字符串,parseFloat() 把一個字符串轉換為一個浮點數
var a = "123.456";
a = parseFloat(a);
console.log(a);
console.log(typeof a);
注意:如果對非String使用parseInt()或parseFloat(),它會先將其轉換為String然後在操作
3、轉換為Boolean類型
將其它的數據類型轉換為Boolean,只能使用Boolean()函數。
使用Boolean()函數
數字 —> 布爾
除了0和NaN,其餘的都是true
字符串 —> 布爾
除了空串,其餘的都是true
null和undefined都會轉換為false
對象也會轉換為true