JavaScript 中的 parseInt()——将 JS 字符串转换为整数

在本教程中,我们将讨论 JavaScript 中的 parseInt 函数。这个函数解析(分解)一个字符串并返回一个整数或 NaN(非数字)。

parseInt 函数如何工作

使用 parseInt 函数的主要目的是从一个字符串中提取一个数字。这样,返回的值就变成了一个实际的数字。

语法是这样的:

parseInt(string)

看看这个例子:

const myNumber = '3';
console.log(2 + myNumber);
// 返回 23

在上面的例子中,3 是一个字符串,而不是一个实际的数字。当我们把 2 加到字符串中时,我们得到的是 23,因为我们只是把 2 加到一个只是数字形式的字符串中。

使用 parseInt 函数,我们可以从字符串中提取 3,并将其转化为一个实际的数字。

下面是一个例子:

const myNumber = '3';
console.log(2 + parseInt(myNumber));
// 返回 5

现在,该函数已经从字符串中删除了 3,并将其转换为一个实际的数字。

记得我们说过,parseInt 函数可以返回一个整数或 NaN。那么什么时候我们会得到一个 NaN 值呢?

当一个字符串中的数字前有一些文字时,就会出现这种情况。像 “age is 50” 这样的字符串会返回一个 NaN 值,因为 parseInt 函数只看字符串开始的第一个值。如果该值不是一个数字,就会返回 NaN。在这里。

const age = 'age is 50';
console.log(parseInt(age));
// 返回 NaN

让我们重新排列字符串,看看会发生什么。

const age = '50 is the age';
console.log(parseInt(age));
// 返回 50

现在,字符串中的第一个值是一个数字,这个数字被返回给我们。

请注意,parseInt 函数忽略了浮动值。如果上面的年龄是 50.05,那么它仍然会返回 50,而忽略 0.05。

同样,如果我们有一个这样的字符串。”50 100 150 200″,那么我们只会得到 50。这是因为 parseInt 函数只试图提取一个字符串的第一个值。

而如果这个字符串的值是这样写的,’50istheage’,仍然会返回 50。

redix 参数

parseInt 函数接受第二个参数,称为 redix。这个参数指定了要使用的数字进制。如果省略 redix,则以 10 为默认值。

以下是语法:

parseInt(string, radix)

这通常是一个 2 到 36 之间的整数。如果 redix 的值小于 2 或大于 36,那么将返回 NaN

如果我们指定 redix 为 12,那么字符串中的数字应该从数字的十二进制值解析为十进制值。

下面是一个简单的例子:

console.log(parseInt("50", 12));

// 返回 60

结果是 12,因为 50 的十二进制值在基数 10(十进制)中是 60。

小结

在这篇教程中,我们学习了如何使用 parseInt 函数从字符串中提取数字。

我们还看到了如何使用 redix 参数来指定在转换返回的整数时要使用的数字进制。