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

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

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

非常感谢任何帮助

【问题讨论】:

    标签: javascript jslint


    【解决方案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 年,许多实现都采用了这种行为。

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

    【讨论】:

      猜你喜欢
      • 2012-03-04
      • 1970-01-01
      • 1970-01-01
      • 2017-05-05
      • 1970-01-01
      • 1970-01-01
      • 2018-03-14
      • 2014-12-14
      • 1970-01-01
      相关资源
      最近更新 更多