JavaScript類型裝換

一、類型轉換的類別

     分爲顯示和隱式兩種。

     這篇主要講顯示的類型轉化。

二、顯示類型轉化

      所謂的顯示類型轉化,無非就是使用三個函數去完成類型的轉化:

      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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章