如果没有提供基数,`parseInt()函数可以返回不需要的和/或意外的结果。请在所有parseInt()实例上使用基数。
如何编辑
请帮助如果您需要,我会发送文件
答案 0 :(得分:0)
假设您想要在未传递基数时创建错误,
parseInt
,将旧参考保留在闭包中,例如 IIFE 例如
parseInt = (function (old_parseInt) {
return function parseInt(x, radix) {
if (arguments.length < 2)
throw new TypeError('parseInt must be given a radix');
return old_parseInt.apply(this, arguments);
};
}(parseInt));
然后在使用中,
parseInt('12', 8); // 10
parseInt('12'); // TypeError: parseInt must be given a radix
(在此页面上运行此代码将破坏stackoverflow,请注意)
答案 1 :(得分:0)
radix是parseInt()函数的第二个参数。 它设置将字符串转换为整数时应使用的数字基数。
显然你会期望parseInt('11')
总是返回11 :)
所有各种JavaScript实现都无法保证这一点。
虽然保证parseInt('11', 10)
将永远返回你本能期望的那个11。
选择不同的基数(或在具有不同默认值的实现中工作)表示2意味着该数字相对于基数2 =&gt;进行解释。 parseInt('11')
实际上意味着parseInt('11', 2)
,因此会出现3。