基本概念
將值從一種類型轉換為另一種類型稱為類型轉換,類型轉換總是返回基本類型值,如字符串、數字和布爾值,不會返回引用類型值。
類型轉換分為“顯式”和“隱式”:“顯式”轉換發生在靜態類型語言的編譯階段,而“隱式”轉換則發生在動態類型語言的運行時。
顯式類型轉換
非字符串到字符串的類型轉換
toString() 方法
數字、布爾值、字符串和對象都有 toString() 方法,但 null 和 undefined 沒有。
例子:
var name = "Tom", age = 19, isStudent = true;console.log(name.toString()); //輸出:"Tom"console.log(age.toString()); //輸出:"19"console.log(isStudent.toString()); //輸出:"true"var obj = { name: "Tom" }, arr = [19, 20];console.log(obj.toString()); //輸出:"[object Object]"console.log(arr.toString()); //輸出:"19,20"*基本類型值不能直接使用 toString() 方法,所以 JavaScript 引擎會自動為基本類型值創建一個封裝對象,然后對該對象調用 toString()。
String() 方法
這個方法能夠將任何類型的值轉換為字符串,基本的轉換規則是:
1、如果值有toString()方法,則調用該方法進行轉換;
2、如果值是null,則返回“null”;
3、如果值是undefined,則返回“undefined”。
例子:
console.log(String(11)); //輸出:"11"console.log(String(true)); //輸出:"true"console.log(String("love")); //輸出:"love"console.log(String(null)); //輸出:"null"console.log(String(undefined)); //輸出:"undefined"console.log(String({ name: "Tom"})); //輸出:"[object Object]"console.log(String([1, 2])); //輸出:"1,2"非數字到數字的類型轉換
Number() 方法
這個方法可以用于任何數據類型,基本的轉換規則是:
1、如果是Boolean值,true和false將分別被轉換為1和0;
2、如果是數字值,只是簡單的傳入和返回;
3、如果是null值,返回0;
4、如果是undefined值,返回NaN;
5、如果是字符串,遵循下列規則:
6、如果是對象,會首先檢查該值是否有 valueOf() 方法。如果有,并且可以成功返回基本類型值,那么就使用該方法的返回值進行強制類型轉換;如果沒有就使用 toString() 的返回值來進行強制類型轉換。如果 valueOf() 和 toString() 均不返回基本類型值,會產生 TypeError 錯誤。
新聞熱點
疑難解答
圖片精選