📅  最后修改于: 2023-12-03 14:51:16.423000             🧑  作者: Mango
在开发中,常常需要将字符串转换为数字,这个过程在 JavaScript 中也很常见。本文将介绍几种方法来实现这个目的。
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
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
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() 函数和强制类型转换。需要注意的是,每种方法都有其各自的特点和适用场景,开发人员可以根据具体需要选择合适的方法。