parseInt
parseInt() 是 JavaScript 中的一个内置函数,用于将字符串转换为整数。以下是关于它的详细介绍:
1. 基本语法
javascript
parseInt(string, radix);string:必需,要被解析的字符串。如果string不是字符串,会先将其转换为字符串。radix:可选,介于2到36之间的整数,表示被解析字符串的基数(进制)。如果省略该参数,或者值为0,则parseInt()会根据字符串的前缀来判断基数:- 如果字符串以
0x或0X开头,会被当作十六进制数解析。 - 如果字符串以
0开头,且严格模式下,会被当作十进制解析;非严格模式下,可能被当作八进制解析(现代 JavaScript 倾向于将其按十进制解析)。 - 如果没有前缀,则按十进制解析。
- 如果字符串以
2. 工作原理
parseInt() 从字符串的开头开始解析,直到遇到无法解析为数字的字符为止。解析过程会忽略字符串前面的空格,并且只解析有效数字部分。例如:
javascript
parseInt(" 123abc"); // 123在这个例子中,parseInt() 遇到 'a' 时停止解析,因为 'a' 不是有效的数字字符。
3. 示例
- 十进制解析:
javascript
parseInt("123"); // 123
parseInt("0123"); // 123(现代 JavaScript 按十进制解析)- 十六进制解析:
javascript
parseInt("0x10"); // 16
parseInt("10", 16); // 16- 二进制解析:
javascript
parseInt("1010", 2); // 10- 错误处理:如果字符串的第一个字符不能被解析为数字(忽略开头的空格),
parseInt()将返回NaN。
javascript
parseInt("abc"); // NaN
parseInt(""); // NaN4. 注意事项
- 自动类型转换:
parseInt()会自动将非字符串类型的参数转换为字符串。例如:
javascript
parseInt(123); // 123,相当于 parseInt('123')- 不完整的数字字符串:如果字符串表示的数字超出了
radix所允许的范围,parseInt()同样会返回NaN。例如:
javascript
parseInt("100", 2); // 4
parseInt("1000", 2); // NaN,因为二进制中不存在 '1000' 这样的三位以上的有效数字- 小数部分:
parseInt()会截断小数部分,只返回整数部分。
javascript
parseInt("3.14"); // 3parseInt() 在处理需要将字符串转换为整数的场景中非常有用,但在使用时需要注意 radix 参数的设置,以确保得到预期的结果。