跳到主要内容

JavaScript 的 parseInt() 方法详解

parseInt()函数解析一个字符串参数并返回指定基数的整数。

示例

const stringDate = "1996";

// 将字符串解析为十进制
let intDate = parseInt(stringDate, 10);
console.log(intDate);

// 输出: 1996

parseInt()语法

parseInt()函数的语法是:

parseInt(string, radix);

parseInt()参数

parseInt()函数接受:

  • string - 要解析的值。如果它不是字符串,将使用ToString抽象操作将其转换为字符串。
  • radix(可选) - 表示数字系统中基数的一个整数,介于236之间。

parseInt()返回值

  • 返回从给定字符串解析出的整数。

  • 当以下情况发生时,返回NaN

  • radix小于2或大于36

  • 第一个非空白字符无法转换为数字。

示例:使用parseInt()

console.log(parseInt("875.99", 10)); // 875

console.log(parseInt("F", 16)); // 15
console.log(parseInt("0xF")); // 15 -> JavaScript认为0x...为十六进制

console.log(parseInt("-17", 8)); // -15

// 数字解析直到非数字字符
console.log(parseInt("85,123", 10)); // 85
console.log(parseInt("FXX123", 16)); // 15

console.log(parseInt("45", 13)); // 57

console.log(parseInt("Hello", 8)); // NaN
console.log(parseInt("546", 2)); // NaN -> 二进制只有1或0,所以无效

// BigInt值会丢失精度
console.log(parseInt("464546416543075614n")); // 464546416543075600

输出

875;
15;
15 - 15;
85;
15;
57;
NaN;
NaN;
464546416543075600;

注意: 如果radix参数是undefined0或未指定,JavaScript将考虑以下情况:

  • 如果字符串以**"0x"开头,radix16**(十六进制)。
  • 如果字符串以**"0"开头,radix8**(八进制)或10(十进制)。确切的radix取决于实现。
  • 如果字符串以任何其他值开头,radix10(十进制)。

推荐阅读: JavaScript parseFloat()