我有以下代码给出标题中描述的警告:
year: parseInt(dateParts[0]),
......................^
任何帮助深表感谢
我有以下代码给出标题中描述的警告:
year: parseInt(dateParts[0]),
......................^
任何帮助深表感谢
参见手册parseInt
;它需要 2 个参数。第二个告诉它您要使用哪个数字基数。这几乎总是10
(十进制)。
parseInt(dateParts[0],10)
如果你不指定它,那么它将从数据中推断出来。
如果 radix 未定义或为 0(或不存在),JavaScript 假定如下:
如果输入字符串以“0x”或“0X”开头,则基数为 16(十六进制)并解析字符串的其余部分。
如果输入字符串以“0”开头,则基数为 8(八进制)或 10(十进制)。确切选择哪个基数取决于实现。ECMAScript 5 指定使用 10(十进制),但并非所有浏览器都支持这一点。由于这个原因,在使用 parseInt 时总是指定一个基数。
如果输入字符串以任何其他值开头,则基数为 10(十进制)。
在我写完以上内容几年后,情况发生了变化。现在:
函数 parseInt 的 ECMAScript 5 规范不再允许实现将以 0 字符开头的字符串视为八进制值。截至 2021 年,许多实现都采用了这种行为。
……但您仍然应该使用基数,至少对于浏览器端代码,因为并非所有实现都赶上了。