JavaScript中字符串转数字的几种常见方法
作者:蜉蝣901
在 JavaScript 中,将字符串转换为数字有几种常见方式,包括使用 .map(Number)
和 Number()
。以下是详细的解释和比较:
1.Number()函数
作用:将字符串或其他类型的值转换为数字。
示例:
let str = "123"; let num = Number(str); // 123
特点:
如果字符串不是有效的数字(如
"123abc"
),会返回NaN
。可以处理
null
(转为0
)、undefined
(转为NaN
)、布尔值(true
转为1
,false
转为0
)等。
2..map(Number)
作用:对数组中的每个元素调用
Number()
函数,将数组中的字符串批量转换为数字。示例:
let strArray = ["1", "2", "3"]; let numArray = strArray.map(Number); // [1, 2, 3]
特点:
是
Array.prototype.map
和Number
函数的结合,等价于.map(x => Number(x))
。会遍历数组,对每个元素调用
Number()
。
其他常见字符串转数字的方式
parseInt()和parseFloat()
作用:解析字符串中的整数或浮点数。
示例:
let str = "123.45"; let intNum = parseInt(str); // 123(整数部分) let floatNum = parseFloat(str); // 123.45
特点:
parseInt
可以指定进制(如parseInt("1010", 2)
将二进制字符串转为十进制数字10
)。会忽略字符串开头的空格,直到找到第一个非空格字符。如果第一个非空格字符不是数字或符号(
+
/-
),返回NaN
。
一元加运算符 (+)
作用:快速将字符串转为数字。
示例:
let str = "123"; let num = +str; // 123
特点:
简洁,但可读性可能不如
Number()
。行为与
Number()
完全一致。
Math.floor()、Math.ceil()、Math.round()
作用:将字符串转为数字并向下取整、向上取整或四舍五入。
示例:
let str = "123.7"; let floorNum = Math.floor(+str); // 123 let ceilNum = Math.ceil(+str); // 124 let roundNum = Math.round(+str); // 124
特点:
通常需要先通过
Number()
或+
将字符串转为数字,再调用这些方法。
对比总结
方法 | 适用场景 | 是否严格转换(无效字符串返回 NaN ) | 备注 |
---|---|---|---|
Number() | 单个字符串转数字 | 是 | 推荐通用方式 |
.map(Number) | 数组中的字符串批量转数字 | 是 | 数组专用 |
parseInt() | 提取字符串中的整数部分 | 否(会忽略无效后缀) | 可指定进制 |
parseFloat() | 提取字符串中的浮点数部分 | 否(会忽略无效后缀) | 只能解析十进制 |
+ 运算符 | 快速单个字符串转数字 | 是 | 行为同 Number() |
Math 相关方法 | 转换后需要取整 | 是(需先转为数字) | 通常配合 Number() 或 + 使用 |
示例代码
// 1. Number() console.log(Number("123")); // 123 console.log(Number("123abc")); // NaN // 2. .map(Number) let strArray = ["1", "2", "3"]; console.log(strArray.map(Number)); // [1, 2, 3] // 3. parseInt() 和 parseFloat() console.log(parseInt("123.45")); // 123 console.log(parseFloat("123.45")); // 123.45 // 4. 一元加运算符 console.log(+"123"); // 123 // 5. Math 方法 console.log(Math.floor("123.7")); // 123(隐式转换) console.log(Math.floor(Number("123.7"))); // 123(显式转换)
注意事项
如果字符串包含非数字字符:
Number()
和+
会返回NaN
。parseInt()
和parseFloat()
会尽可能解析前面的数字部分。
对于数组批量转换,
.map(Number)
是最简洁的方式。
根据需求选择合适的方法!
总结
到此这篇关于JavaScript中字符串转数字的几种常见方法的文章就介绍到这了,更多相关js字符串转数字方法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!