simongong/js-stackoverflow-highest-votes

Number.parseInt(string[, radix]);

Closed this issue · 3 comments

question 21-30下,数字转换里面的数字解析下,Number.parseInt(string[, radix]);是不是写错了?

,位置错了。
赞,好仔细。

其实虽然 radix 是可选的,但是 MDN 上面说,如果不指定的话,会导致一些问题,一下摘选自 MDN:

如果字符串 string 以"0x"或者"0X"开头, 则基数是16 (16进制).
如果字符串 string 以"0"开头, 基数是8(八进制)或者10(十进制),那么具体是哪个基数由实现环境决定。ECMAScript 5 规定使用10,但是并不是所有的浏览器都遵循这个规定。因此,永远都要明确给出radix参数的值。
如果字符串 string 以其它任何值开头,则基数是10 (十进制)。

所以我在这种情况下,用 Number.parseInt(string, radix); 是否会更好?

在实际开发中,是的。
eslint里面也有这个配置,我们也是强制要求使用radix的。