📌  相关文章
📜  在javascript中将字符串转换为数字(1)

📅  最后修改于: 2023-12-03 14:51:16.423000             🧑  作者: Mango

在 JavaScript 中将字符串转换为数字

在开发中,常常需要将字符串转换为数字,这个过程在 JavaScript 中也很常见。本文将介绍几种方法来实现这个目的。

parseInt() 函数
let str = "123";
let num = parseInt(str);
console.log(num); // 123

parseInt() 函数会从字符串中提取数字部分,忽略首尾的空格,并返回整数部分。但是需要注意的是,如果字符串中包含非数字的字符,parseInt() 函数会忽略这些字符,只返回前面的数字。

let str = "123abc";
let num = parseInt(str);
console.log(num); // 123

如果字符串中第一个字符不是数字,parseInt() 函数会返回 NaN。

let str = "abc123";
let num = parseInt(str);
console.log(num); // NaN

还需要注意的是,parseInt() 函数还有第二个参数 radix。这个参数用来指定解析时使用的基数(即进制),默认为 10。当字符串以 0 开头时(如 "07"),如果不指定基数,则可能会被当作八进制数解析。

let str = "07";
let num1 = parseInt(str);
let num2 = parseInt(str, 10);
console.log(num1); // 7
console.log(num2); // 7
parseFloat() 函数
let str = "3.14";
let num = parseFloat(str);
console.log(num); // 3.14

parseFloat() 函数类似于 parseInt() 函数,不同之处在于它可以解析浮点数。同样,如果字符串中包含非数字的字符,parseFloat() 函数会忽略这些字符,只返回前面的数字。

let str = "3.14abc";
let num = parseFloat(str);
console.log(num); // 3.14

如果字符串中第一个字符不是数字,parseFloat() 函数也会返回 NaN。

let str = "abc3.14";
let num = parseFloat(str);
console.log(num); // NaN
Number() 函数
let str = "123";
let num = Number(str);
console.log(num); // 123

Number() 函数可以将任何类型的值转换为数字。如果传入的值是字符串,它会尝试解析字符串中的数字,并返回一个浮点数或整数。如果传入的是非字符串类型的值,它会直接将其转换为数字类型。

let num1 = Number("3.14");
let num2 = Number(true);
let num3 = Number(null);
let num4 = Number(undefined);
console.log(num1); // 3.14
console.log(num2); // 1
console.log(num3); // 0
console.log(num4); // NaN

需要注意的是,如果字符串中包含非数字的字符,Number() 函数会返回 NaN。

let str = "123abc";
let num = Number(str);
console.log(num); // NaN
强制类型转换

最后一种将字符串转换为数字的方法是使用强制类型转换。这可以通过 "+" 运算符来实现。

let str = "123";
let num = +str;
console.log(num); // 123

和 Number() 函数类似,如果字符串中包含非数字的字符,强制类型转换会返回 NaN。

let str = "123abc";
let num = +str;
console.log(num); // NaN
总结

本文介绍了四种在 JavaScript 中将字符串转换为数字的方法:parseInt() 函数、parseFloat() 函数、Number() 函数和强制类型转换。需要注意的是,每种方法都有其各自的特点和适用场景,开发人员可以根据具体需要选择合适的方法。