📜  parseint 函数 javascript (1)

📅  最后修改于: 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无法被转换成数字
具体实现

在实现过程中,需要注意以下几点:

  1. 字符串去除开头和结尾的空格,使用 trim() 方法。

  2. 判断字符串表示的数字的正负,如果字符串以 - 开头,则说明是负数,需要将负号存储下来,并将字符串指针向后移动一位。

  3. 如果指定了基数,则需要判断字符串是否符合该进制下的数字规则,否则使用默认基数10进行解析。

  4. 对于不支持使用指定进制解析的数字字符,在默认进制下解析。

  5. 需要一位一位的遍历字符串,将每个字符转换成数字,并将其乘上进制的 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 中常用的一个函数,可以将字符串解析成整数。在使用该函数时,需要注意指定字符串表示的数字的进制,以及判断字符串是否合法,避免错误的解析结果。