javascript(五) 類型轉換

                                      類型轉換

經過手動進行類型轉換,Javascript提供瞭如下轉型函數:html

轉換爲數值類型:Number(mix)、parseInt(string,radix)、parseFloat(string)
轉換爲字符串類型:toString(radix)、String(mix)
轉換爲布爾類型:Boolean(mix)數組

一、Number(mix)函數,能夠將任意類型的參數mix轉換爲數值類型。其規則爲:函數

  1. 若是是布爾值,true和false分別被轉換爲1和0
  2. 若是是數字值,返回自己。
  3. 若是是null,返回0.
  4. 若是是undefined,返回NaN。
  5. 若是是字符串,遵循如下規則:
    1. 若是字符串中只包含數字,則將其轉換爲十進制(忽略前導0)
    2. 若是字符串中包含有效的浮點格式,將其轉換爲浮點數值(忽略前導0)
    3. 若是是空字符串,將其轉換爲0
    4. 若是字符串中包含非以上格式,則將其轉換爲NaN
  6. 若是是對象,則調用對象的valueOf()方法,而後依據前面的規則轉換返回的值。若是轉換的結果是NaN,則調用對象的toString()方法,再次依照前面的規則轉換返回的字符串值。

下表列出了對象的valueOf()的返回值:測試

對象 返回值
Array 數組的元素被轉換爲字符串,這些字符串由逗號分隔,鏈接在一塊兒。其操做與 Array.toString 和 Array.join 方法相同。
Boolean Boolean 值。
Date 存儲的時間是從 1970 年 1 月 1 日午夜開始計的毫秒數 UTC。
Function 函數自己。
Number 數字值。
Object 對象自己。這是默認狀況。
String 字符串值。

下面提供幾個例子,你能寫出它的正確結果嗎:spa

 

  • Number(「hello CSSer!」);
  • Number(「0×8″);
  • Number(「」);
  • Number(「020dd」);
  • Number(「070″);
  • Number(true);

二、parseInt(string, radix)函數,將字符串轉換爲整數類型的數值。它也有必定的規則code

 

  1. 忽略字符串前面的空格,直至找到第一個非空字符
  2. 若是第一個字符不是數字符號或者負號,返回NaN
  3. 若是第一個字符是數字,則繼續解析直至字符串解析完畢或者遇到一個非數字符號爲止
  4. 若是上步解析的結果以0開頭,則將其看成八進制來解析;若是以0x開頭,則將其看成十六進制來解析
  5. 若是指定radix參數,則以radix爲基數進行解析

小測驗:htm

  • parseInt(「hello CSSer!」);
  • Number(「0×8″);
  • parseInt(「」);
  • parseInt(「020dd」);
  • parseInt(「070″);
  • parseInt(「22.5″);

三、parseFloat(string)函數,將字符串轉換爲浮點數類型的數值對象

它的規則與parseInt基本相同,但也有點區別:字符串中第一個小數點符號是有效的,另外parseFloat會忽略全部前導0,若是字符串包含一個可解析爲整數的數,則返回整數值而不是浮點數值。blog

四、toString(radix)方法。除undefined和null以外的全部類型的值都具備toString()方法,其做用是返回對象的字符串表示ip

對象 操做
Array 將 Array 的元素轉換爲字符串。結果字符串由逗號分隔,且鏈接起來。
Boolean 若是 Boolean 值是 true,則返回 「true」。不然,返回 「false」。
Date 返回日期的文字表示法。
Error 返回一個包含相關錯誤信息的字符串。
Function 返回以下格式的字符串,其中 functionname 是被調用 toString 方法函數的名稱:

function functionname( ) { [native code] }

Number 返回數字的文字表示。
String 返回 String 對象的值。
默認 返回 「[object objectname]」,其中 objectname 是對象類型的名稱。

五、String(mix)函數,將任何類型的值轉換爲字符串,其規則爲

  1. 若是有toString()方法,則調用該方法(不傳遞radix參數)並返回結果
  2. 若是是null,返回」null」
  3. 若是是undefined,返回」undefined」

六、Boolean(mix)函數,將任何類型的值轉換爲布爾值

如下值會被轉換爲false:false、」"、0、NaN、null、undefined,其他任何值都會被轉換爲true。

隱式轉換

在某些狀況下,即便咱們不提供顯示轉換,Javascript也會進行自動類型轉換,主要狀況有:

1. 用於檢測是否爲非數值的函數:isNaN(mix)

isNaN()函數,經測試發現,該函數會嘗試將參數值用Number()進行轉換,若是結果爲「非數值」則返回true,不然返回false。

 2.主要就是關注String 轉Number String 轉 Boolean ,這是三個基本類型之間的轉換,有一些默認的關係。

內容來源:http://www.cnblogs.com/mizzle/archive/2011/08/12/2135885.html 感謝博主

相關文章
相關標籤/搜索