美文网首页
JavaScript 里Number、parseFloat、pa

JavaScript 里Number、parseFloat、pa

作者: celineWong7 | 来源:发表于2018-10-30 16:51 被阅读0次

在JavaScript中,有三个方法可以把非数值转换成数值类型:Number()parseInt()parseFloat()
Number():可以用于任何数据类型;
parseInt() / parseFloat():主要针对把字符串转换成数值。
他们有相通之处,但也有不同之处。此处做一个整理,方便查阅。

首先献祭出一个例子图,便于快速区别三个方法: 例子图

Number() 的转换规则

数据类型 规则
Boolean true和false将分别被转换为1和0
Number 直接的传入返回
Null 返回0
Undefined 返回NaN
String 遵循下列规则:
1. 只包含数字,将其转换为十进制数值: “1” -> 1“123” ->123“011” -> 11(忽略前导零);
2. 只包含有效的浮点格式,将其转换为对应浮点数值: “1.1” -> 1.1“03.14” ->3.14“1.22.33” -> NaN
3. 只包含有效的十六进制格式,将其转换为相同大小的十进制整数值:“0xf” -> 15
4. 空字符串(不包含任何字符或包含空格等空字符),则将其转换为0:“” -> 0“ ” -> 0
5. 除以上提及格式的字符,则将其转换为NaN:“99 88” -> NaN“99abc” -> NaN
Object 代码测试时NaN,理论上还得查阅一番资料233

parseInt() / parseFloat() 的转换规则

因为Number()方法转换字符串的时候比较复杂,所以一般处理字符串比较常用的是parseInt() / parseFloat()

parseInt() 的转换规则是:
逐个解析字符串的字符,忽略前面空格,找到第一个非空格字符;若第一个字符不是数字字符或者负号,返回NaN;若第一个字符是数组字符,就继续解析第二个字符,直到解析完所有后续字符串或者遇到了一个非数字字符。

parseFloat()的转换规则和parseInt() 类似,区别在于parseFloat()能识别第一次出现的小数点。

parseInt() 方法还有基模式,可以把二进制、八进制、十六进制或其他任何进制的字符串转换成整数。

(注意parseFloat()没有基模式)。

var num2 = parseInt("AF");       //NaN  
var num1 = parseInt("AF",16);     //175  (按照十六进制解析)  
var num3 = parseInt("10",2);      //2  (按照二进制解析)  
var num4 = parseInt("sdasdad");    //NaN 

以上。

相关文章

网友评论

      本文标题:JavaScript 里Number、parseFloat、pa

      本文链接:https://www.haomeiwen.com/subject/nhawtqtx.html