Number()、parseInt()、parseFloat()的区别
Number():
Number()的強制類型轉(zhuǎn)換與parseInt()和parseFloat()方法的處理方式相似,只是它轉(zhuǎn)換的是整個值,而不是部分值,如果有無效字符,該方法將返回NaN。
例如
如果要把字符串 "12.34 "轉(zhuǎn)換成整數(shù),那么Number()將返回12.34
如果要把字符串 "1234blue "轉(zhuǎn)換成整數(shù),那么Number()將返回NaN,因為當它檢測到字符b時,就會停止檢測過程。
parseInt():
parseInt()方法首先查看位置0處的 字符,判斷它是否是個有效數(shù)字;如果不是,該方法將返回NaN,不再繼續(xù)執(zhí)行其他操作。但如果該字符是有效數(shù)字,該方法將查看位置1處的字符,進行同樣的 測試。這一過程將持續(xù)到發(fā)現(xiàn)非有效數(shù)字的字符為止,此時parseInt()將把該字符之前的字符串轉(zhuǎn)換成數(shù)字。
例如
如果要把字符串 "12.34 "轉(zhuǎn)換成整數(shù),那么parseInt()將返回12,因為當它檢測到字符"."時,就會停止檢測過程。
如果要把字符串 "1234blue "轉(zhuǎn)換成整數(shù),那么parseInt()將返回1234,因為當它檢測到字符b時,就會停止檢測過程。
parseInt()方法還有基模式,可以把二進制、八進制、十六進制或其他任何進制的字符串轉(zhuǎn)換成整數(shù)。
基是由parseInt()方法的第二個參數(shù)指定的,所以要解析十六進制的值,當然,對二進制、八進制,甚至十進制(默認模式),都可以這樣調(diào)用parseInt()方法。
如果十進制數(shù)包含前導(dǎo)0,那么最好采用基數(shù)10,這樣才不會意外地得到八進制的值。
二、parseFloat()
與parseInt()方法的處理方式相似,從位置0開始查看每個字符,直到找到第一個非有效的字符為止,然后把該字 符之前的字符串轉(zhuǎn)換成數(shù)字。
不過,對于這個方法來說,第一個出現(xiàn)的小數(shù)點是有效字符。如果有兩個小數(shù)點,第二個小數(shù)點將被看作無效的, parseFloat
()方法會把這個小數(shù)點之前的字符串轉(zhuǎn)換成數(shù)字。這意味著字符串 "22.34.5 "將被解析成22.34。
使用parseFloat()方法的另一不同之處在于,字符串必須以十進制形式表示浮點數(shù),而不能用八進制形式或十六進制形式。
該方法會忽略前導(dǎo)0,所以八進制數(shù)0908將被解析為908。對于十六進制數(shù)0xA,該方法將返回NaN,因為在浮點數(shù)中,x不是有效字符。
此外,parseFloat()也沒有基模式。
更多專業(yè)前端知識,請上 【猿2048】www.mk2048.com
總結(jié)
以上是生活随笔為你收集整理的Number()、parseInt()、parseFloat()的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Iframe父页面与子页面之间的相互调用
- 下一篇: WebUploader点击上传文件选择框