一、類型轉換的類別
分爲顯示和隱式兩種。
這篇主要講顯示的類型轉化。
二、顯示類型轉化
所謂的顯示類型轉化,無非就是使用三個函數去完成類型的轉化:
Nunber、String、Boolean函數
1.Nunber函數
原始類型的轉換
1.數值,要轉化的是Number 123,那麼返回的也是數值123
var number =Number(123);
2.字符串
var string =Nunber('123');
var string2 =Nunber('a123');
var string3 =Nunber('');
分爲三種情況,第一種是輸入純數字的字符串,則會轉化爲相應的數值。
第二種是輸入無法識別爲數值的字符串,返回NAN。
第三種是輸入空字符串,返回0
3.布爾值
var boolean1 = Nunber(true);//1
var boolean2 = Nunber(false)//2
4.輸入的是undefined,返回NAN
5.輸入的是null,返回0
對象類型的轉換
簡單的將是分三種情況:
比如Number({a:1}); 1.首先會調用對象的valueOf()方法,如果返回的是原始類型,再調用Number()轉換。 2.如果valueOf()方法返回的是複合類型的值,會繼續調用toString()方法,如果返回原始類型,再調用Number()方法。 如果toString()方法返回的還是複合類型的值,就會報錯。 例子中傳入的是一個對象{a:1} 那麼首先使用{a:1}.valueOf() //返回{a:1}對象本身 然後再用{a:1}.toString() //返回字符串[object Object],然後對該字符串進行Number方法,返回NAN
2.string函數
對於原始類型
1.Number值,轉換爲對應的字符串
var string1 = String(123) //"123"
2.字符串,還是原來的值。
3.布爾值
String(true) //"true"
String(false) //"false"
4.undefined //"undefined"
5.null //"null"
對於對象類型的轉換
比如String({a:1}); 1.首先會調用對象的toString()方法,如果返回的是原始類型,再調用String()轉換。 2.如果toString()方法返回的是複合類型的值,會繼續調用valueOf()方法,如果返回原始類型,再調用Stringr()方法。 如果valueOf()方法返回的還是複合類型的值,就會報錯。 比如例子中傳入的是對象{a:1} 先用toString()方法 //返回"[object Object]"字符串,是原始類型。 然後會調用String("[object Object]")
3.Boolean函數轉換
Boolean函數轉換隻有兩種情況,一個返回true,一個返回false。
一下情況返回false,其他的情況一律返回true
1.undefined
2.null
3.-0
4.+0
5.空字符串''
6.NAN