18. parseInt 的参数有几个
总结
- parseInt 的参数有 2 个
- 参数 1 是字符串,参数 2 是进制数
函数签名
parseInt(string, radix);
参数说明
参数名 | 类型 | 必填 | 描述 |
---|---|---|---|
string | string | ✅ | 需要解析的字符串值 |
radix | number | ❌ | 数值的进制(2 到 36 之间),可选参数 |
⚠️ 如果不指定
radix
,行为取决于字符串内容:
- 如果字符串以
0x
或0X
开头,则按 16 进制解析- 如果字符串以
0
开头,旧版浏览器可能按 8 进制解析(ES5 之后已修正)- 否则按 10 进制解析
返回值
- 返回解析后的整数值(
number
) - 如果第一个字符不是数字,则返回
NaN
示例代码
基本用法
console.log(parseInt("123")); // 123(默认 10 进制)
console.log(parseInt("123", 10)); // 123
console.log(parseInt("1010", 2)); // 10(二进制)
console.log(parseInt("FF", 16)); // 255(十六进制)
console.log(parseInt("abc")); // NaN
不指定 radix
的陷阱
console.log(parseInt("012")); // 12(现代浏览器)
// 在旧环境中可能被解析为八进制:10
✅ 推荐始终指定
radix
,避免解析结果不一致。
注意事项
- 只解析字符串开头的数字部分,遇到非法字符停止解析:
console.log(parseInt("123abc")); // 123
console.log(parseInt("abc123")); // NaN
- 如果参数不是字符串,会被自动转换为字符串:
console.log(parseInt(123.45)); // 123(等价于 parseInt("123.45"))
最佳实践
- ✅ 始终传入
radix
参数,避免歧义 - ✅ 使用
Number()
或一元加号(+str
)将字符串转为浮点数或整数 - ✅ 对于非字符串输入,建议先用
toString()
转换
const input = "123";
const num = +input; // 快速转为数字