一、基本概念
parseInt()是JavaScript中的函数,主要用于把字符串转化为整数类型(number)。
语法:parseInt(string, radix)
其中,string表示要被转换的字符串,radix为可选参数,表示要被解析的数字的基数。
返回值:将string解析成为整数后的结果。
二、用途
parseInt()主要应用在以下几个方面:
1. 网页表单验证
// 比如,以下代码用于验证输入的数字是否为1~100之间的整数 function validateNumber(){ let num = document.getElementById("userNum").value; if(num === ""){ alert("请输入数字!"); return false; } let newNum = parseInt(num); if(newNum >= 1 && newNum <= 100 && Number.isInteger(newNum)){ alert("输入正确"); return true; } else { alert("请输入1~100之间的整数!"); return false; } }
2. 与数组的配合使用
在数组的排序或查找操作中,经常需要将字符串类型转换为数字类型。举个例子:
let arr = ["10", "2", "30", "5", "100"]; arr.sort(function(a, b){ return parseInt(a) - parseInt(b); }); console.log(arr); // 输出 ["2", "5", "10", "30", "100"]
3. 字符串的拼接与转换
let str = "123"; let newStr = str + ""; console.log(newStr); // 输出 "123" let newNum = parseInt(newStr); console.log(newNum); // 输出 123
三、注意事项
1、如果字符串中存在非数字字符,parseInt()会将其忽略,只返回前面的数字部分。
let str = "123xyz"; let newNum = parseInt(str); console.log(newNum); // 输出 123
2、如果不传入基数参数,parseInt()会默认使用十进制进行转换。如果字符串以"0x"开头,会自动转换为十六进制数。
let str1 = "13"; let str2 = "0x13"; let num1 = parseInt(str1); let num2 = parseInt(str2); console.log(num1); // 输出 13 console.log(num2); // 输出 19
3、对于小数类型的字符串,只会返回整数部分。
let str = "3.14"; let newNum = parseInt(str); console.log(newNum); // 输出 3
4、字符串长度超过15位时,由于JS数字的精度问题,parseInt()可能会出现错误的结果。建议使用BigInt类型进行转换。
let str = "1234567890123456"; let newNum = parseInt(str); console.log(newNum); // 输出 1.234567890123456e+15 let bigIntNum = BigInt(str); console.log(bigIntNum); // 输出 1234567890123456n