【发布时间】:2018-12-22 19:31:49
【问题描述】:
我必须将一些输入数据转换为整数。
我找到了parseInt() 函数。
如果输入是字符串,一切都很好:
console.log(parseInt("123")) //123
即使字符串以0开头:
console.log(parseInt("0123")) //123
但是如果一个数字以0开头,就会给出83!
console.log(parseInt(0123)) //83 instead of 123
我听说那是因为八进制行为 (Javascript parseInt() with leading zeros),所以我给它一个 radix 参数:
console.log(parseInt(0123,10)) //83!!!
还是83!!!
然后,最奇怪的是:
我想:八进制 123 必须给出八进制的 123!
但它给了NaN:
console.log(parseInt(0123, 8)) //NaN
为什么会有这种奇怪的行为?!我该如何解决?
谢谢!!!
【问题讨论】:
-
行为与
parseInt()无关。试试console.log(0123) -
parseInt需要一个字符串。 “我该如何解决?”的答案是将正确的参数传递给函数。
标签: javascript parseint