強制類型轉換指將一個數據類型強制轉換為其它的數據類型。一般是指,將其它的數據類型轉換為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