JavaScript parseInt() 语法
parseInt() 是 JavaScript 的一个全局函数,它用于将一个字符串转换为一个整数。parseInt() 函数会提取字符串 “开头” 包含的整数部分。
语法:
parseInt(string, radix)说明:
parseInt() 方法接收以下 2 个参数。
string(必选):是一个字符串。radix(可选):表示什么进制,它是介于 2~36 之间的整数。比如 2 表示 2 进制,8 表示 8 进制,以此类推。
提示:
- parseInt() 是一个全局函数(顶层函数),我们可以直接调用而无需创建实例。
- parseInt() 在 ES6 中被标准化为 Number.parseInt(),两者的功能行为完全一致。不过,parseInt() 作为全局函数仍然广泛被接受和使用。
- 与 parseInt() 相似的还有一个 parseFloat() 函数,另请参阅:JavaScript parseFloat() 函数。
JavaScript parseInt() 摘要
| 属于 | JavaScript 全局对象 |
|---|---|
| 使用频率 | 高 |
| 官方文档 | 查看 |
| MDN | 查看 |
JavaScript parseInt() 示例
接下来,我们通过一个简单的例子来讲解一下 JavaScript parseInt() 是如何使用的。
示例 1:parseInt() 基本用法
console.log(parseInt("123"));
console.log(parseInt("3.1415"));
console.log(parseInt("100px"));
console.log(parseInt("hao123"));
console.log(parseInt("lvyenet"));运行结果如下。
123
3
100
NaN
NaN分析:
从上面例子可以看出:parseInt() 会从左到右进行判断,如果第 1 个字符是数字,则继续判断,直到出现非数字为止;如果第 1 个字符是非数字,则直接返回 NaN。
深入理解 parseInt()
当然了,上面例子的结论并不等于最终结论。不过在大多数情况下,我们只需要记住上面结论已经够用了。下面再来看几种特殊情况。
示例 2:parseInt() 判断的字符串包含加减号
console.log(parseInt("+123"));
console.log(parseInt("-123"));运行结果如下。
123
-123分析:
这里第 1 个字符是加号(+)或减号(-),也就是非数字,parseInt() 同样可以识别它们。因为加号和减号在数学上其实就是用于表示一个数的正负,所以 parseInt() 可以接受第 1 个字符是加号或减号。
前面两个例子考虑的都是十进制的情况,比如 parseInt("123") 本质上等价于 parseInt("123", 10)。下面再来考虑一下其他进制情况。
示例 3:parseInt() 接收 2 个参数
console.log(parseInt("F", 16));
console.log(parseInt("0xF"));
console.log(parseInt("06", 8));
console.log(parseInt("06", 10));运行结果如下。
15
15
6
6分析:
现在我们可以总结一下:parseInt() 会从左到右进行判断,如果第 1 个字符是 “+”、“-”、“0”、“0x” 或 1~9 的数字,则继续判断,直到出现非数字为止;如果第 1 个字符是其他字符,则直接返回 NaN。
- 如果第 1 个字符是 “+” 或 “-”,parseInt() 会自动识别其为数学意义上的加号或减号。
- 在较新的标准中,如果字符串以 “0” 开头且后面不跟 “x”,则默认为 10 进制。但在旧环境中可能被视为 8 进制。为了避免歧义,建议始终显式指定第二个参数,即 parseInt(str, 10)。
- 如果第 1 个字符是 “0x”,parseInt() 会自动识别其为 16 进制。
示例 4:parseInt() 更多使用
console.log(parseInt("360deg", 10));
console.log(parseInt("360deg", 8));
console.log(parseInt("360deg", 16));运行结果如下。
360
240
221406