parseInt()
函数
1、基本介绍
parseInt(str, radix);
parseInt 函数用于将字符串转换为整数
参数 | 说明 | 是否可选 |
---|---|---|
str | 要被解析的字符串 | 必需 |
radix | 进制,范围为 2 ~ 36 |
可选 |
2、演示
let result1 = parseInt("123");
let result2 = parseInt("123abc");
let result3 = parseInt("");
let result4 = parseInt();
console.log(result1);
console.log(result2);
console.log(result3);
console.log(result4);
# 输出结果
123
123
NaN
NaN
参数 str 解读
- 忽略字符串前后的空格
let result1 = parseInt(" 123");
let result2 = parseInt("123 ");
let result3 = parseInt(" 123 ");
console.log(result1);
console.log(result2);
console.log(result3);
# 输出结果
123
123
123
- 如果第一个非空格字符不是数字或正负号,返回
NaN
(注:单个正负号也返回NaN
)
let result1 = parseInt("-");
let result2 = parseInt("+");
let result3 = parseInt("-123");
let result4 = parseInt("+123");
let result5 = parseInt("a");
console.log(result1);
console.log(result2);
console.log(result3);
console.log(result4);
console.log(result5);
# 输出结果
NaN
NaN
-123
123
NaN
- 解析直到遇到非数字字符为止
let result1 = parseInt("123");
let result2 = parseInt("123px");
console.log(result1);
console.log(result2);
# 输出结果
123
123
- 如果 str 为浮点数字符串,只返回整数部分
let result = parseInt("123.45");
console.log(result);
# 输出结果
123
- 如果 str 为空字符串,返回
NaN
let result = parseInt("");
console.log(result);
# 输出结果
NaN
- 如果 str 不是字符串,会先自动转换为字符串
console.log(String(5));
console.log(String(05));
console.log(String(0.000005));
console.log(String(0.0000005));
let result1 = parseInt(5);
let result2 = parseInt(05);
let result3 = parseInt(0.000005);
let result4 = parseInt(0.0000005);
console.log(result1);
console.log(result2);
console.log(result3);
console.log(result4);
# 输出结果
5
5
0.000005
5e-7
5
5
0
5
参数 radix 解读
- 如果省略 radix 或 radix 设为 0,则默认以 radix 为 10 来处理
let result1 = parseInt("123");
let result2 = parseInt("123", 0);
console.log(result1);
console.log(result2);
# 输出结果
123
123
- 如果省略 radix 或 radix 设为 0,str 以
0x
或0X
开头(十六进制字符串),则以 radix 为 16 来处理
let result1 = parseInt("0x123");
let result2 = parseInt("0x123", 0);
let result3 = parseInt("0X123");
let result4 = parseInt("0X123", 0);
console.log(result1);
console.log(result2);
console.log(result3);
console.log(result4);
# 输出结果
291
291
291
291
- 如果省略 radix 或 radix 设为 0,其他情况的 str(以
0
开头的八进制字符串、以0b
或0B
开头的二进制字符串),则以 radix 为 10 来处理
let result1 = parseInt("0123");
let result2 = parseInt("0123", 0);
console.log(result1);
console.log(result2);
# 输出结果
123
123
let result1 = parseInt("0b123");
let result2 = parseInt("0b123", 0);
let result3 = parseInt("0B123");
let result4 = parseInt("0B123", 0);
console.log(result1);
console.log(result2);
console.log(result3);
console.log(result4);
# 输出结果
0
0
0
0
- 指定 radix 为常用进制
let result1 = parseInt("123", 10);
let result2 = parseInt("123", 16);
let result3 = parseInt("123", 8);
let result4 = parseInt("123", 2);
console.log(result1);
console.log(result2);
console.log(result3);
console.log(result4);
# 输出结果
123
291
83
1
- 指定 radix 为非常用进制
let result = parseInt("123", 3);
console.log(result);
# 输出结果
5
- 如果 radix 小于 2 或大于 36,返回
NaN
let result1 = parseInt("123", 1);
let result2 = parseInt("123", 37);
console.log(result1);
console.log(result2);
# 输出结果
NaN
NaN