Number()、parseInt()和parseFloat()的轉換規則
Number():
(1)若是是Boolean值,true和false將分別轉換爲1和0。
(2)若是是數字值,只是簡單的傳入和返回。
(3)若是是null值,返回0。
(4)若是是undefined,返回NaN。
(5)若是是字符串,遵循下列規則:
若是字符串截去開頭和結尾的空白字符後,不是純數字字符串,那麼最終返回結果爲NaN。
若是是字符串中只包含數字(包括前面帶正號或負號的狀況),則將其轉換爲十進制數值,即「1」變成1,「123」會變成123,而「011」會變成11(前導的零被忽略了);
若是字符串中包含有效的浮點格式,如「1.1」,則將其轉換爲對應的浮點數值(一樣也會忽略前導零);
若是字符串中包含有效的十六進制格式,例如」0xf」,則將其餘轉換爲相同大小的十進制整數值;
若是字符串是空的(不包含任何字符),則將其轉換爲0;
若是字符串中包含除上述格式以外的字符,則將其餘轉換成NaN.
(6)若是是對象,則調用對象的valueOf()方法,而後依照前面的規則轉換返回的值。若是轉換的結果是NaN,則調用的對象的toString()方法,而後再次依照前面的規則轉換返回的字符串值。函數
parseInt( ):
(1)若是第一個字符不是數字字符或者負號,parseInt()就會返回NaN; 也就是說,用parseInt()轉換空字符串會返回NaN。
(2)若是第一個字符是數字字符,parseInt()會繼續解析第二個字符,直到解析完全部後續字符或者遇到了一個非數字字符。
(3)若是字符串以」0x」開頭且後跟數字字符,就會將其看成一個十六進制整數。
(4)若是字符串以」0」開頭且後跟數字字符,就會將其看成一個八進制整數。
(5)parseInt()函數增長了第二參數用於指定轉換時使用的基數(即多少進制)。
(6)當parseInt()函數所解析的是浮點數字符串時,取整操做所使用的方法爲「向下取整」。對象
parseFloat( ):
(1)parseFloat()只接受一個參數,且僅能處理10進制字符串。
2)字符串中的第一個小數點是有效的,而第二個小數點就是無效的了,所以它後面的字符串將被忽略。字符串