在JavaScript中,将字符串转为数字最直接的方式是使用 Number() 函数或一元加号(+)。Number() 可处理整数和浮点数,若字符串含非数字字符则返回 NaN;而 + 是其简写形式,效果相同。parseInt() 和 parseFloat() 可分别解析整数和浮点数,但会忽略字符串末尾的非数字字符。
js如何把字符串转换成数字?
在JavaScript中,将字符串转换为数字有多种方法,以下是常见的几种方式及示例:
1. 使用 Number() 函数
将字符串直接转换为数字,包括整数和浮点数,若转换失败返回 NaN。
javascript1let str = "123.45";
2let num = Number(str); // 123.45
4let invalidStr = "abc";
5let result = Number(invalidStr); // NaN
2. 使用 parseInt() 和 parseFloat()
parseInt():解析字符串并返回整数,忽略非数字部分。
javascript1let intStr = "42px";
2let intNum = parseInt(intStr); // 42
parseFloat():解析浮点数。
javascript1let floatStr = "3.14em";
2let floatNum = parseFloat(floatStr); // 3.14
注意:两者会从字符串开头解析,直到遇到非数字字符为止。

3. 使用一元加号(+)运算符
简洁的隐式转换方式,等价于 Number()。
javascript1let str = "789";
2let num = +str; // 789
4let invalidStr = "hello";
5let result = +invalidStr; // NaN
4. 使用 Math.floor()、Math.ceil() 等数学函数
数学运算会强制转换字符串为数字(非数字会返回 NaN)。
javascript1let str = "9.8";
2let num = Math.floor(str); // 9(向下取整)
5. 利用 ~~ 双按位非(仅限整数)
快速转换为32位整数(效率高,但会截断小数)。
javascript1let str = "123.9";
2let num = ~~str; // 123
注意事项
空字符串或空格:
javascript1Number(" "); // 0
2parseInt(" "); // NaN
十六进制字符串:
javascript1parseInt("0x10"); // 16(自动识别十六进制)
科学计数法:
javascript1Number("1e3"); // 1000
总结
需严格转换时用 Number() 或 +。
提取字符串中的数字用 parseInt()/parseFloat()。
快速取整可用 Math.floor() 或 ~~(但注意范围限制)。
根据场景选择合适的方法,并始终处理可能的 NaN 结果!
需要注意的是,如果字符串无法转换为有效的数字,以上方法将返回NaN。如果需要进行更复杂的数字处理,还可以使用JavaScript的Math对象提供的方法,如parseInt()和parseFloat()可用于处理特定位数的小数或十六进制数。