JavaScript - parseInt()方法自動判斷進制
parseInt(numString)
是js中非常常用的一個方法,其作用是將字符串转换为int类型。但是使用的过程中,你會發現,當num的值為01-07的值的字符串時,得到的結果是1-7,當你輸入的值為08、09、060等值時,到的結果卻不是8、9、60… 自己最近在項目中就遇到這樣的問題,后面查了js 的API,發現parseInt方法的參數及說明如下:
parseInt(
numString
, [radix])
numString
必选项。要转换为数字的字符串。
radix
可选项。在 2 和 36 之间的表示 numString所保存数字的进制的值。如果没有提供,则前缀为 '0x' 的字符串被当作十六进制,前缀为 '0' 的字符串被当作八进制。所有其它字符串都被当作是十进制的
看了API才知道,原來像08、09、060這些值,如果我們沒有指定為十進制,js會把它們當成了十六進制。所以以后在使用parseInt()方法時,為了防止遇到這種情況而導制不必要的問題,就要指定進制了。