1. 使用 parseInt()
parseInt()
解析一个字符串并返回一个整数。允许空格。仅返回第一个数字。
这种方法虽然有一个限制。如果您解析十进制数,它将四舍五入到最接近的整数值,并将该值转换为string。可能需要使用parseFloat()
方法进行文字转换。
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 10Number(" 10 "); // returns 10Number("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
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
5. 使用 Math.floor()
该Math.floor()
函数返回小于或等于给定数字的最大整数。这对于十进制数字可能有点棘手,因为它将最接近的整数的值返回为Number。
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
7. 双波浪号 (~~) 运算符
我们可以使用双波浪号运算符将字符串转换为数字。
str = '1234' console.log(~~str) // expected result: 1234 negStr = '-234' console.log(~~negStr) // expected result: -234
这是性能方面提到的方式的比较。
补充:js 强制转换 为数字类型
/* * 将其他的数据类型转换为Number * 转换方式一: * 使用Number()函数 * - 字符串 --> 数字 * 1.如果是纯数字的字符串,则直接将其转换为数字 * 2.如果字符串中有非数字的内容,则转换为NaN * 3.如果字符串是一个空串或者是一个全是空格的字符串,则转换为0 * - 布尔 --> 数字 * true 转成 1 * false 转成 0 * * - null --> 数字 0 * * - undefined --> 数字 NaN * * 转换方式二: * - 这种方式专门用来对付字符串 * - parseInt() 把一个字符串转换为一个整数 * - parseFloat() 把一个字符串转换为一个浮点数 */ var a = "123"; //调用Number()函数来将a转换为Number类型 a = Number(a); a = false; a = Number(a); a = null; a = Number(a); a = undefined; a = Number(a); a = "123567a567px"; //调用parseInt()函数将a转换为Number /* * parseInt()可以将一个字符串中的有效的整数内容去出来, * 然后转换为Number */ a = parseInt(a); /* * parseFloat()作用和parseInt()类似,不同的是它可以获得有效的小数 */ a = "123.456.789px"; a = parseFloat(a); /* * 如果对非String使用parseInt()或parseFloat() * 它会先将其转换为String然后在操作 */ a = true; a = parseInt(a); a = 198.23; a = parseInt(a); console.log(typeof a); console.log(a); /* * 在js中,如果需要表示16进制的数字,则需要以0x开头 * 如果需要表示8进制的数字,则需要以0开头 * 如果要要表示2进制的数字,则需要以0b开头 * 但是不是所有的浏览器都支持 * */ //十六进制 a = 0x10; a = 0xff; a = 0xCafe; //八进制数字 a = 070; //二进制数字 //a = 0b10; //向"070"这种字符串,有些浏览器会当成8进制解析,有些会当成10进制解析 a = "070"; //可以在parseInt()中传递一个第二个参数,来指定数字的进制 a = parseInt(a,10); console.log(typeof a); console.log(a);
总结
到此这篇关于JavaScript中将字符串转换为数字的七种方法的文章就介绍到这了,更多相关js字符串转换为数字内容请搜索阿兔在线工具以前的文章或继续浏览下面的相关文章希望大家以后多多支持阿兔在线工具!