回顧基礎-非數值轉換為數值(Number、parseInt、parseFloat)

函數

有三個函數可以把非數值轉換為數值: Number()、parseInt()和parseFloat()。
Number()可以用于任何數據類型,另外兩個函數則專門用于把字符串轉換為數值。

Number

1.如果是Boolean值,true和false轉換為1和0.
2.如果是數字值,只是簡單的傳入和返回.
3.如果是null,返回0.
4.如果是undefined,返回NaN.
5.如果是字符串:
—1.字符串只包含數字(包括前面帶正負號的情況),則轉換為十進制數值
—2.如果字符串中包含有效的十六進制格式,則將其轉換為相同大小的十進制整數值
—3.如果字符串是空的,則將其轉換為0
—4.如果字符串包含除上述格式之外的額字符,則轉換為NaN
6.如果是對象,則調用對象的valueOf()方法,然后按照前面的規(guī)則轉換為返回的值。如果轉換
的結果是NaN,則調用對象的toString()方法,然后再次按照前面的規(guī)則轉換為返回的字符串值.

parseInt

parseInt()在轉換字符串時,更多的是看其是否符合數值模式。它會忽略字符串前面的空格,直至找到第一個非空格字符。如果第一個字符不是數字字符或者負號,parseInt()就會返回NaN,也就是說用 parseInt()轉換空字符串會返回NaN(Number()對空字符返回0)。如果第一個字符是數字字符,parseInt()會繼續(xù)解析第二個字符,直到解析完所有后續(xù)字符或者遇到了一個非數字字符。

e.g:
const num1 = parseInt("1234whk");    /// 1234
const num2 = parseInt("")    /// NaN
const num3 = parseInt("070")  /// 70 默認十進制數
parseFloat

與parseInt()函數類似,parseFloat()也是從第一個字符(位置0)開始解析每個字符。而且也是一直解析到字符串末尾,或者解析到遇見一個無效的浮點數數字位置。也就是說,字符串中的第一個小數點是有效的,而第二個小數點就是無效的了,因此它后面的字符串將被忽略。

e.g:
const num1 = parseFloat("1234wkh")   /// 1234
const num2 = parseFloat("22.5")  // 22.5
const num3 = parseFloat("22.23.2") // 22.23
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容