js字符串转数字

首先,介绍两种方法
1、parseInt()还有它的兄弟parseFloat()
一个转整数,一个转浮点,这不用多说了

parseInt(string, radix);

string
要被解析的值。如果参数不是一个字符串,则将其转换为字符串(使用 toString)(这也是为什么string输入的是数字如12,也能正确解析的原因)。字符串开头的空白符将会被忽略。

radix
一个介于2和36之间的整数(数学系统的基础),表示上述字符串的基数。比如参数"10"表示使用我们通常使用的十进制数值系统。始终指定此参数可以消除阅读该代码时的困惑并且保证转换结果可预测。当未指定基数时,不同的实现会产生不同的结果,通常将值默认为10。
返回值
返回解析后的整数值。 如果被解析参数的第一个字符无法被转化成数值类型,则返回 NaN。

介绍部分规则
0x/0X前缀会解析成16进制,0b前缀解析成二进制,0, 0o前缀可能会转化成8进制或10进制,这个不同浏览器实现不太一样,
js字符串转数字_第1张图片
所以一定要写基数,
一些数中可能包含e字符(例如6.022e23),使用parseInt去截取包含e字符数值部分会造成难以预料的结果。例如:

parseInt("6.022e23", 10);        // 返回 6
parseInt(6.022e2, 10);          // 返回 602
// parseInt不应该用作 Math.floor()的替代品。

2、Number 对象主要用于:

如果参数无法被转换为数字,则返回 NaN。
在非构造器上下文中 (如:没有 new 操作符),Number 能被用来执行类型转换。

Number()的转换要比parseInt()更严格。
js字符串转数字_第2张图片

Number容不下任何非数字。而parseInt更像是从左往右去匹配,直到匹配到非数字才中止,如果第一位就不是数字才会返回NaN

你可能感兴趣的:(Javascript)