我在此JavaScript代码上运行了JSLint,它说:
第32行字符30处的问题:基数参数丢失。
这是有问题的代码:
imageIndex = parseInt(id.substring(id.length - 1))-1;
这里怎么了?
[通过parseInt传递基数始终是一个好习惯-
parseInt(string, radix)
对于十进制-
parseInt(id.substring(id.length - 1), 10)
如果省略了radix参数,则JavaScript假定以下条件:
只需在.eslintrc中添加您的自定义规则,如下所示"radix": "off"
并且您将摆脱此eslint unnesesery警告。这是给随便的lint使用的。
在ECMAScript 5之前,parseInt()还自动检测到八进制文字,这引起了问题,因为许多开发人员认为前导0将被忽略。
为了避免此警告,请不要使用:
我没有正确回答问题,但是,我认为清除为什么要指定基数
如果您想跳过该测试,则可以关闭此规则。
在JS文件顶部添加以下内容将告诉JSHint禁止基数警告:
我仅使用+ foo解决了该问题,就转换了字符串。
您也可以直接在parseInt行上方添加此行:
只需将一个空字符串放在基数位置,因为parseInt()带有两个参数:
代替调用substring
函数,您可以使用.slice()