javascript中數值及字符串轉換方法

將一個非數值數據轉換爲數值

有三個方法能將一個非數值轉換爲數值:Number(),parseInt()和parseFloat()。bash

Number()

Number轉換規則以下:函數

  1. Boolean類型的true和false分別轉換爲1和0;
  2. 數字值就是簡單的傳入和返回;
  3. null,返回0;
  4. undefined,返回NaN;
  5. 字符串則要分幾種狀況處理,空字符串返回0,僅包含數字或者數字及小數點的字符串,將其轉換爲相應的數值,包含除數字外其餘類型字符的轉爲NaN;
  6. 對象的話,則調用對象的valueOf(), 按照前面的規則轉換,若結果爲NaN,則調用對象的toString(),在此按照前面的規則進行轉換;
Number('abc'); // NaN
Number(''); // 0
Number(true); // 1
複製代碼

注意:一元操做符也能實現和Number()一毛同樣的功能。spa

Number()在處理字符串的時候比較複雜而且不夠合理,所以在處理字符串的時候常常使用的是parseInt()和parseFloat().code

parseInt()和parseFloat()

與Number()不一樣的是:對象

  • Number()將空字符串轉換爲0,而parseInt()和parseFloat()會將空字符串轉換爲NaN;
  • Number()轉化的是整個值而不是部分值,parseInt()和parseFloat()只轉化第一個無效字符以前的字符串。
  • parseInt()方法能夠傳第二個參數指定數值轉換的基數(好比按照十進制解析仍是按照八進制解析等),parseInt只能解析十進制值;
Number('123abc'); // NaN
parseInt('123abc'); // 123
parseFloat('123.45ab); // 123.45 parseInt('10', 2); // 2, 按照二進制解析 parseInt('10', 10); // 10, 按照十進制解析 複製代碼

**注意,再不指定parseInt()方法的基數,即不傳第二個參數的時候,是由parseInt()來決定如何解析字符串的,所以爲了不錯誤的解析,咱們最好永遠指定基數。字符串

將一個值轉換爲字符串

有兩種方式能夠將一個值轉換爲字符串:toString()和String()string

toString()

除了undefined和null都有toString()方法,大多數狀況下調用toString()方法沒必要傳參數,但在調用數值的toString()方法的時候,能夠傳遞一個參數,輸出數值的基數。it

String()

這個函數能夠將任何類型的值轉換爲字符串,當不知道要轉換的值是否爲null或者undefined的時候,則可使用String()方法來轉化。可將null轉爲'null',undefined轉爲'undefined'。class

另外要把某個值轉爲字符串還能夠與一個空字符串作加法操做,一樣能達到轉換目的二進制

相關文章
相關標籤/搜索