📅  最后修改于: 2023-12-03 15:33:25.148000             🧑  作者: Mango
parseInt
函数在JavaScript中的使用parseInt
函数是 JavaScript 中常用的一个函数,可以将字符串解析成整数。该函数有两个参数:要解析的字符串和解析时使用的基数(即字符串表示的数字的进制,常用的有2、8、10、16进制)。
语法格式:parseInt(string, radix)
如果没有指定基数,parseInt
函数默认使用基数10进行解析,如果第一个字符不能被转换成数字,那么函数将返回 NaN
(Not-a-Number)。
以下是一些示例:
console.log(parseInt("123")) // 123
console.log(parseInt("1010", 2)) // 10,将二进制1010解析成十进制
console.log(parseInt("56", 8)) // 46,将八进制56解析成十进制
console.log(parseInt("AE", 16)) // 174,将十六进制AE解析成十进制
console.log(parseInt("foo")) // NaN,foo无法被转换成数字
在实现过程中,需要注意以下几点:
字符串去除开头和结尾的空格,使用 trim()
方法。
判断字符串表示的数字的正负,如果字符串以 -
开头,则说明是负数,需要将负号存储下来,并将字符串指针向后移动一位。
如果指定了基数,则需要判断字符串是否符合该进制下的数字规则,否则使用默认基数10进行解析。
对于不支持使用指定进制解析的数字字符,在默认进制下解析。
需要一位一位的遍历字符串,将每个字符转换成数字,并将其乘上进制的 n 次方(n 为字符位置),最后将所有位的数字相加得到最终结果。
下面是一个例子:
function myParseInt(str, radix) {
// 去除开头和结尾的空格
str = str.trim();
// 检查正负符号
var sign = 1;
if (str[0] === '-') {
sign = -1;
str = str.slice(1);
}
// 获取基数
radix = radix || 10;
// 检查字符串是否合法
if (radix < 2 || radix > 36) return NaN;
// 对每个字符进行处理
var num = 0;
for (var i = 0; i < str.length; i++) {
var digit = parseInt(str[i], radix);
if (isNaN(digit)) return NaN;
num = num * radix + digit;
}
return sign * num;
}
console.log(myParseInt("123")) // 123
console.log(myParseInt("1010", 2)) // 10
console.log(myParseInt("56", 8)) // 46
console.log(myParseInt("AE", 16)) // 174
console.log(myParseInt("foo")) // NaN
parseInt
函数是 JavaScript 中常用的一个函数,可以将字符串解析成整数。在使用该函数时,需要注意指定字符串表示的数字的进制,以及判断字符串是否合法,避免错误的解析结果。