JS 字符串转为数字
在 JavaScript 中,我们经常需要将字符串转换为数字,这在处理用户输入或者从后端接收数据时尤为常见。本文将详细介绍如何将字符串转换为数字,包括整数和浮点数,并且讨论一些常见的异常情况和解决方案。
parseInt() 函数
在 JavaScript 中,我们可以使用 parseInt()
函数将字符串转换为整数。该函数接受两个参数,第一个参数是要转换的字符串,第二个参数是进制数(可选,默认为十进制)。
let str = "123";
let num = parseInt(str);
console.log(num); // 123
console.log(typeof num); // number
在上面的示例中,我们将字符串 "123"
转换为整数 123
。在不指定进制的情况下,默认为十进制。如果字符串的开头是数字,则会解析直到遇到非数字字符为止,例如:
let str = "123abc";
let num = parseInt(str);
console.log(num); // 123
需要注意的是,parseInt()
函数只会解析整数部分,如果遇到小数点则会停止解析。如果字符串以非数字字符开头,则会返回 NaN
(Not a Number)。
parseFloat() 函数
除了将字符串转换为整数外,我们还可以使用 parseFloat()
函数将字符串转换为浮点数。该函数也只接受一个参数,要转换的字符串。
let str = "3.14";
let num = parseFloat(str);
console.log(num); // 3.14
console.log(typeof num); // number
在上面的示例中,我们将字符串 "3.14"
转换为浮点数 3.14
。parseFloat()
函数会一直解析直到遇到非数字字符为止,因此可以正确解析小数部分。
let str = "3.14abc";
let num = parseInt(str);
console.log(num); // 3.14
同样需要注意的是,如果字符串以非数字字符开头,则会返回 NaN
。
异常情况处理
在将字符串转换为数字时,可能会出现一些异常情况,例如空字符串或者包含无效字符的字符串。对于这些情况,我们可以使用条件判断来处理。
let str1 = "123";
let num1 = parseInt(str1);
let str2 = "";
let num2 = parseInt(str2);
let str3 = "abc";
let num3 = parseInt(str3);
if (!isNaN(num1)) {
console.log(num1);
} else {
console.log("Invalid number");
}
if (!isNaN(num2)) {
console.log(num2);
} else {
console.log("Invalid number");
}
if (!isNaN(num3)) {
console.log(num3);
} else {
console.log("Invalid number");
}
在上面的示例中,num1
是一个有效的整数,将被正确输出。num2
是一个空字符串,parseInt()
函数返回 NaN
,将输出 “Invalid number”。num3
包含无效字符,同样返回 NaN
。
小结
通过 parseInt()
和 parseFloat()
函数,我们可以将字符串转换为数字,包括整数和浮点数。在处理异常情况时,可以使用条件判断和 isNaN()
函数来进行处理。在实际开发中,需要注意用户输入的有效性,以避免出现不必要的错误。