JSLint说“缺少基数参数”

2022-08-29 22:38:57

我在这个JavaScript代码上运行了JSLint,它说:

第 32 行第 30 个字符处的问题:缺少基数参数。

这是有问题的代码:

imageIndex = parseInt(id.substring(id.length - 1))-1;

这是怎么回事?


答案 1

使用 parseInt 传递基数始终是一个好习惯 -

parseInt(string, radix)

对于十进制 -

parseInt(id.substring(id.length - 1), 10)

如果省略基数参数,JavaScript 将假定以下内容:

  • 如果字符串以“0x”开头,则基数为 16(十六进制)
  • 如果字符串以“0”开头,则基数为 8(八进制)。此功能已弃用
  • 如果字符串以任何其他值开头,则基数为 10(十进制)

(参考)


答案 2

要避免此警告,请不要使用:

parseInt("999", 10);

您可以将其替换为:

Number("999");


请注意,parseInt 和 Number 具有不同的行为,但在某些情况下,一个可以替换另一个。