lint 警告:parseInt 缺少基数参数 [重复]

Posted

技术标签:

【中文标题】lint 警告:parseInt 缺少基数参数 [重复]【英文标题】:lint warning: parseInt missing radix parameter [duplicate] 【发布时间】:2013-07-14 22:43:27 【问题描述】:

我有以下代码给出标题中描述的警告:

          year: parseInt(dateParts[0]),
               ......................^

非常感谢任何帮助

【问题讨论】:

【参考方案1】:

见the manual for parseInt;它需要 2 个参数。第二个告诉它您要使用哪个数字基数。这几乎总是10(十进制)。

parseInt(dateParts[0],10)

如果不指定,则从数据中推断出来。

如果 radix 未定义或为 0(或不存在),javascript 假定如下:

如果输入字符串以“0x”或“0X”开头,基数为16 (十六进制)并解析字符串的其余部分。

如果输入字符串以“0”开头,则基数为八(八进制)或 10 (十进制)。确切选择哪个基数取决于实现。 ECMAScript 5 指定使用 10(十进制),但不是所有浏览器 支持这个。出于这个原因,使用时总是指定一个基数 parseInt.

如果输入字符串以任何其他值开头,则基数为 10 (十进制)。

在我写完以上内容几年后,情况发生了变化。现在:

函数 parseInt 的 ECMAScript 5 规范不再允许实现将以 0 字符开头的字符串视为八进制值。截至 2021 年,许多实现都采用了这种行为。

...但您仍然应该使用基数,至少对于浏览器端代码,因为并非所有实现都赶上了。

【讨论】:

以上是关于lint 警告:parseInt 缺少基数参数 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Android Lint:如何忽略故意仅覆盖某些默认翻译的区域语言环境字符串文件中缺少的翻译警告?

缺少对 Firebase App Indexing 的支持(android lint)

Android Lint contentDescription警告

parseInt() 函数的奇怪行为

JavaScript parseInt() 函数

[JavaScript] parseInt() 函数