parseint 是 javascript 中从字符串开头提取整数的函数,支持指定进制、跳过空白、识别正负号;必须显式传入进制参数以防隐式解析陷阱,其截断式解析区别于 number() 和一元加号的全匹配要求。

parseInt 是 JavaScript 中将字符串解析为整数的常用函数,它会从字符串开头开始读取,直到遇到无法识别为数字的字符为止,然后返回已解析出的整数部分。
基本用法:指定进制最安全
推荐始终传入第二个参数(进制),避免意外结果。例如:
- parseInt("10", 10) → 返回 10(十进制)
- parseInt("10", 2) → 返回 2(二进制 "10" 等于十进制 2)
- parseInt("0xFF", 16) → 返回 255(十六进制)
处理常见字符串格式
它会自动跳过开头的空白字符,并支持正负号:
- parseInt(" 42") → 42
- parseInt("-17.8") → -17(小数点后停止解析)
- parseInt("123abc") → 123(遇到字母就停)
- parseInt("abc123") → NaN(开头不是有效数字)
注意隐式进制和陷阱
如果不传进制参数,parseInt 会按规则推断:
- 以 0x 或 0X 开头 → 十六进制
- 以 0 开头(ES5 及更早)→ 八进制(已废弃,但部分环境仍生效)
- 其他情况 → 十进制
因此,parseInt("012") 在旧环境中可能返回 10(八进制),而现代严格模式下通常按十进制处理,但行为不一致。所以务必显式传入进制。
与 Number() 和一元加号的区别
parseInt 是“截断式”解析,只取开头合法整数部分;而:
- Number("123abc") → NaN(整个字符串必须完全合法)
- +"123abc" → NaN
- parseInt(" 42px", 10) → 42(适合提取带单位的数值)
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











