Energy of Love |
|
|||
日歷
統計
導航常用鏈接留言簿隨筆分類
隨筆檔案
搜索最新評論
閱讀排行榜評論排行榜 |
bug描述:
parseInt("08")=0; parseInt("09")=0; 這里先回顧一下parseInt的函數聲明: /*
‘01’到’07’,按8進制或10進制解析會得到相同的結果。 而’08’,’09’按8進制解析會得到’0’,因為’8’、’9’在8進制中是非法字符,不會被解析。由此導致上述的bug。* 將字符串解析成數字時,從左向右依此解析,解析到第一個非法字符即停止。 * 若指定radix為2-36之間的數字,則按相應的進制進行解析; * 若radix指定為1,或大于36的數字,則直接返回NaN * 若指定radix為0,或未指定radix,則根據字符串開頭字符確定: * 以'1-9'開頭的字符串,按10進制解析; * 以'0'開頭的字符串,按8進制解析; * 以'0x'或'0X'開頭的字符串,按16進制解析。 * * @param string 要被解析的字符串。 * @param radix 表示要解析的數字的基數。該值介于 2 ~ 36 之間。 */ parseInt(string, radix)
找到問題根源,修復就變得很簡單了,顯示指定radix為10. parseInt("08",10);
評論:
|
![]() |
|
Copyright © 不高興 | Powered by: 博客園 模板提供:滬江博客 |