Skip to content

parseInt

parseInt() 是 JavaScript 中的一个内置函数,用于将字符串转换为整数。以下是关于它的详细介绍:

1. 基本语法

javascript
parseInt(string, radix);
  • string:必需,要被解析的字符串。如果 string 不是字符串,会先将其转换为字符串。
  • radix:可选,介于 236 之间的整数,表示被解析字符串的基数(进制)。如果省略该参数,或者值为 0,则 parseInt() 会根据字符串的前缀来判断基数:
    • 如果字符串以 0x0X 开头,会被当作十六进制数解析。
    • 如果字符串以 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(""); // NaN

4. 注意事项

  • 自动类型转换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"); // 3

parseInt() 在处理需要将字符串转换为整数的场景中非常有用,但在使用时需要注意 radix 参数的设置,以确保得到预期的结果。

Released under the MIT License.