如何在每个parseInt()实例上使用基数

时间:2015-11-01 19:34:53

标签: javascript

如果没有提供基数,`parseInt()函数可以返回不需要的和/或意外的结果。请在所有parseInt()实例上使用基数。

如何编辑

请帮助

如果您需要,我会发送文件

2 个答案:

答案 0 :(得分:0)

假设您想要在未传递基数时创建错误

  1. 暗影parseInt,将旧参考保留在闭包中,例如 IIFE
  2. 测试您的条件
  3. 调用旧参考
  4. 例如

    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。