我不希望每次parseInt('08', 10)
使用每个字符串进行整数转换,
我们可以修改parseInt
方法,以便我只能使用parseInt('08')
代替parseInt('08', 10)
。
答案 0 :(得分:5)
您可以像这样定义自己的函数,而不是修改内置函数parseInt
:
function prseInt(n)
{
return parseInt(n, 10);
}
并使用parseInt(n, 10)
替换您在应用中使用的prseInt(n)
的所有内容。
var origParseInt = parseInt;
parseInt = function(n) {
return origParseInt(n, 10);
}
它有效!
答案 1 :(得分:0)
只需在字符串前面使用+
运算符即可执行类型强制(无需调用parseInt()
)
var str = "08";
var num = +str;
console.log(num, typeof num); // 8, number
答案 2 :(得分:0)
parseInt(xx)
(即没有基数参数)将在99%的时间内完美地工作,它会做的是尝试猜测你的基础。
对于像8
这样的单个数字,它会正确猜测basse10并给你整数8.问题是像08
这样的字符串它会猜测你想要的是八进制,并转换{{3} }。
每当使用parseInt
时,您应始终提供基数参数。