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

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

这是问题中的代码:

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

这里出了什么问题?


当前回答

你也可以简单地将这一行添加到你的parseInt行上面:

// eslint-disable-next-line

这将禁用下一行的eslint检查。如果你只需要跳过一两行就可以使用这个方法。

其他回答

在JS文件的顶部添加以下内容将告诉JSHint抑制基数警告:

/*jshint -W065 */

参见:http://jshint.com/docs/#options

在ECMAScript 5之前,parseInt()还自动检测八进制文字,这导致了一些问题,因为许多开发人员认为前导0会被忽略。

所以与其:

var num = parseInt("071");      // 57

这样做:

var num = parseInt("071", 10);  // 71

var num = parseInt("071", 8);

var num = parseFloat(someValue); 

参考

如果您希望跳过该测试,可以关闭此规则。

插入:

radix: false

在tslint中的“rules”属性下。json文件。

如果您不理解这个异常,不建议这样做。

为了避免这个警告,不要使用:

parseInt("999", 10);

你可以用:

Number("999");

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

只需在.eslintrc中添加自定义规则,就像这样 “基数”:“关闭” 这样你就不用担心这个不必要的警告了。 这是为eslint linter。