先发制人2026
72.36M · 2026-03-22
string 转 数字 numberlet str = '123'
str | 0
console.log(str | 0) // 123 数字类型
>>>位移运算符let str = '123'
str >>> 0
console.log(str >>> 0) // 123 number类型
Number()内置函数转let str = '123'
let num = Number(str);
console.log(num); // 123
注意:
如果字符串不是有效的数字(如 "123abc"),会返回 NaN。
可以处理 null(转为 0)、undefined(转为 NaN)、布尔值(true 转为 1,false 转为 0)等。
+ 隐式转换let str = '123'
+str
console.log(+str) // 123
注意:
简洁,但可读性可能不如 Number()。
行为与 Number() 完全一致。
map(Number) 对数组中的每个元素调用 Number() 函数,将数组中的字符串批量转换为数字。let strArray = ["1", "2", "3"];
let numArray = strArray.map(Number); // [1, 2, 3]
map(Number)是 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。
如果字符串包含非数字字符:
Number() 和 + 会返回 NaN。
parseInt() 和 parseFloat() 会尽可能解析前面的数字部分。