parseInt(value, radix)
是 JavaScript 中的一个全局函数,用于解析一个字符串,并返回指定基数的整数。这个函数尝试从给定的字符串 value
中解析出一个整数。如果解析成功,则返回解析得到的整数;如果解析失败,则返回 NaN
(Not-a-Number,非数字值)。
参数说明:
value
:要被解析的字符串。如果字符串的第一个字符不能被转换为数字,则parseInt
会返回NaN
。radix
(可选):一个介于 2 到 36 之间的整数,表示上述字符串的基数(也就是进制)。例如,10
表示十进制,16
表示十六进制。如果省略该参数或其值为 0,则 JavaScript 会根据字符串的格式来猜测基数:- 如果字符串以 “0x” 或 “0X” 开头,则基数为 16(十六进制)。
- 如果字符串以 “0” 开头且没有 “x” 或 “X”,则 JavaScript 会尝试将其解析为八进制数(尽管 ECMAScript 5 及更新版本已将这种行为视为不推荐使用的,并可能将未来的实现更改为总是将这样的字符串视为十进制)。但是,为了兼容性,很多现代浏览器仍然保留了这种八进制解析的行为。
- 如果字符串以任何其他值开头,则基数为 10(十进制)。
因此,parseInt(value, 10)
明确地将字符串 value
按照十进制来解析。这是处理数字字符串时的一个好习惯,因为它消除了基数猜测带来的不确定性,确保了代码的可读性和可维护性。
示例:
console.log(parseInt("10", 10)); // 输出: 10
console.log(parseInt("010", 10)); // 输出: 10,注意:即使字符串以 "0" 开头,也按十进制解析
console.log(parseInt("10.33", 10)); // 输出: 10,因为 parseInt 会停止解析在第一个非数字字符处
console.log(parseInt("Hello", 10)); // 输出: NaN,因为 "Hello" 不能被解析为数字
console.log(parseInt("0x10", 16)); // 输出: 16,但注意这里明确指定了基数为 16
在大多数情况下,当你处理来自用户输入或外部源的字符串,并希望将其转换为整数时,使用 parseInt(value, 10)
是一个好的选择。