在 JavaScript 中将字符串转换为数字的 7 种方法

1. 使用 parseInt()

parseInt()解析一个字符串并返回一个整数。允许空格。仅返回第一个数字。 这种方法虽然有一个限制。如果您解析十进制数,它将四舍五入到最接近的整数值,并将该值转换为string。可能需要使用parseFloat()方法进行文字转换。

myString = 129 
console.log(parseInt(myString)) // expected result: 129

a = 12.22
console.log(parseInt(a)) // expected result: 12
myString = 129 console.log(parseInt(myString)) // expected result: 129 a = 12.22 console.log(parseInt(a)) // expected result: 12

2. 使用 Number()

Number()可用于将 JavaScript 变量转换为数字。我们可以用它来转换字符串太数字。 如果该值不能转换为数字,NaN则返回。

Number("10");          // returns 10
Number(" 10  ");       // returns 10
Number("10.33");       // returns 10.33
Number("10"); // returns 10 Number(" 10 "); // returns 10 Number("10.33"); // returns 10.33

3. 使用一元运算符 (+)

一元加号运算符 ( +) 在其操作数之前并计算其操作数,但如果尚未将其转换为数字,则尝试将其转换为数字。

const x = 25;
const y = -25;
console.log(+x); // expected output: 25
console.log(+y); // expected output: -25
console.log(+); // expected output: 0
const x = 25; const y = -25; console.log(+x); // expected output: 25 console.log(+y); // expected output: -25 console.log(+); // expected output: 0

4.使用parseFloat()

parseFloat()解析一个字符串并返回一个数字。允许空格。仅返回第一个数字。

parseFloat("10");        // returns 10
parseFloat("10.33");     // returns 10.33
parseFloat("10 20 30");  // returns 10
parseFloat("10 years");  // returns 10
parseFloat("years 10");  // returns NaN
parseFloat("10"); // returns 10 parseFloat("10.33"); // returns 10.33 parseFloat("10 20 30"); // returns 10 parseFloat("10 years"); // returns 10 parseFloat("years 10"); // returns NaN

5. 使用 Math.floor()

该Math.floor()函数返回小于或等于给定数字的最大整数。这对于十进制数字可能有点棘手,因为它将最接近的整数的值返回为Number。

str = 1222
console.log(Math.floor(str)) // returns 1222

a = 12.22
Math.floor(a) // expected result: 12
str = 1222 console.log(Math.floor(str)) // returns 1222 a = 12.22 Math.floor(a) // expected result: 12

6.乘以数字

将字符串值乘以1不会改变值,并且默认情况下它会转换为数字。

str = 2344
console.log(str * 1) // expected result: 2344
str = 2344 console.log(str * 1) // expected result: 2344

7. 双波浪号 (~~) 运算符

我们可以使用双波浪号运算符将字符串转换为数字。

str = 1234
console.log(~~str) // expected result: 1234
negStr = -234
console.log(~~negStr) // expected result: -234
str = 1234 console.log(~~str) // expected result: 1234 negStr = -234 console.log(~~negStr) // expected result: -234

是性能方面提到的方式的比较。如果您知道更多方法,请在下方评论。 谢谢你

经验分享 程序员 微信小程序 职场和发展