日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

关于parseInt()里的一些小坑

發布時間:2025/3/15 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于parseInt()里的一些小坑 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

parseInt(string,radix)方法是將輸入字符串轉化為數值,兩個輸入參數中string為要轉化的字符串,radix可省略,是瀏覽器以幾進制來解讀輸入的string。

舉幾個例子就能夠對該方法有基本的了解了,如下:

parseInt("123"); //123

parseInt("123ab123"); //輸出123 ?因為出現字母所以該字母及之后的字符都不被解析

若輸入字符串首位是0或者0x之外的數字,則在radix缺省的情況下,默認解讀為10進制。

?

0X默認解讀為16進制

parseInt("0x10"); //字符串以0x開頭則將之后的數字按16進制解讀,16進制的10也就是十進制的16, 因此輸出為16

parseInt("0xa"); //10,要注意16進制包括0~9,a~f (也就是10~15),超出該范圍的字符不被解讀。

parseInt("0xg"); //NAN

這三個例子分別等價于 parseInt("0x10",16) ?parseInt("0xa",16) ?parseInt("0xg",16)

?

以0開頭的默認解讀為八進制,但是不同瀏覽器解讀方式不同,

parseInt("011"); //chrome下輸出為11也就是會忽略首位的0,將011當成10進制解讀,別的瀏覽器未測試--

parseInt("011",8); //此時會輸出正確的9

因為這個坑,所以建議需要以八進制解讀時,帶上第二參數radix并設置為8,以免出問題

parseInt("09",8); //八進制取值范圍為0~7,不包括9,因此9不能被解讀,這時相當于parseInt("0",8);輸出0

?

?

最后有一個特殊情況:

parseInt("0.000000434"); //4

parseInt("0.00000434"); //0

造成這種情況的原因可能是因為:

document.write(0.000000434+"<br/>"); //4.34e-7
document.write(0.00000434+"<br/>");//0.00000434

當小數點后有6個或者以上的0時,會以科學記數法存儲,所以--。

?

?

部分內容參考https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt

?

轉載于:https://www.cnblogs.com/lesliecn/p/7301601.html

總結

以上是生活随笔為你收集整理的关于parseInt()里的一些小坑的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。