原始地址:https://dev.to/sanchithasr/7-ways-to-convert-a-string-to-number-in-javascript-4l

  1. 使用parseInt()
    parseInt()解析字符串并返回一个整数。可以包含空格。只返回第一个数字。
    然而,该方法有一个限制。如果解析的是小数,它将四舍五入为最近的整数值,并将该值转换为字符串。一个可能需要使用parseFloat()方法进行字面转换。
    myString = ‘129’
    console.log(parseInt(myString)) // 期望结果:129
    a = 12.22
    console.log(parseInt(a)) // 期望结果:12

2. 使用Number()
Number()可以用来将JavaScript变量转换为数字。我们也可以用它将字符串转换为数字。
如果值无法转换为数字,则返回NaN。
Number(“10”); // 返回10
Number(” 10 “); // 返回10
Number(“10.33”); // 返回10.33

3. 使用一元运算符(+)
一元加运算符 (+) 位于其操作数之前,并将其操作数转换为数字(如果尚未转换)。
const x = 25;
const y = -25;
console.log(+x); // 期望输出:25
console.log(+y); // 期望输出:-25
console.log(+‘’); // 期望输出:0

4. 使用parseFloat()
parseFloat()解析字符串并返回一个数字。可以包含空格。只返回第一个数字。
parseFloat(“10”); // 返回 10
parseFloat(“10.33”); // 返回 10.33
parseFloat(“10 20 30”); // 返回 10
parseFloat(“10 years”); // 返回 10
parseFloat(“years 10”); // 返回 NaN

5. 使用Math.floor()
Math.floor()函数返回小于或等于给定数字的最大整数。对于小数,这可能有点棘手,因为它将返回最近整数的值作为Number
str = ‘1222’
console.log(Math.floor(str)) // 返回 1222
a = 12.22
Math.floor(a) // 期望结果:12

6. 用数字相乘
将字符串值与1相乘,这不会改变值,并且默认情况下会将其转换为数字。
str = ‘2344’
console.log(str * 1) // 期望结果:2344

7. 双次波浪(~~)操作符
我们可以使用双次波浪操作符将字符串转换为数字。
str = ‘1234’
console.log(~~str) // 期望结果:1234
negStr = ‘-234’
console.log(~~negStr) // 期望结果:-234
这里是性能方面提到的方法比较,请在下面发表评论,如果你还知道其他方法。
谢谢您