您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

js中parseInt函数的简单介绍

2024/4/14 2:57:51发布14次查看
这篇文章介绍了js中的parseint函数,有需要的朋友可以参考一下
从很热门的实例parseint(09)==0说起。
parseint(number,type)这个函数后面如果不跟第2个参数来表示进制的话,默认是10进制。
比如说parseint(010,10)就是10进制的结果:10,
parseint(010,2)就是2进制的结果:2,
parseint(010,8)就是8进制的结果:8,
parseint(010,16)就是2进制的结果:16。
下面我来说说没有指定进制单位的时候,默认是10进制,但:如果是里面的number是0开头的就认为是8进制的,如果是0x开头的就认为是16进制的。
parseint(10)==>parseint(010,10)===>10parseint(010)==>parseint(010,8)==>8parseint(0x10)==>parseint(010,16)==>16.
到这里很顺利.
许多事情不是想的那么顺利,比如说如果number不是我们给的正常数字又怎么解释呢。查了些资料,是这样说的:
parseint(number)如果中间的number遇到不是数字(0-9)的就中断往下解析,就只取不是数字之前的值去运算:比如parseint(100x),就相当于parseint(100)===》parseint(100,10)==>100,又如parseint(0100x)===>parseint(0100)===>parseint(100,8)===>64.
到这里我们似乎无视了一个就是16进制中的有个x,它也不是数字,是不是遇到x也无视了呢。尝试下了发现在这个特殊处理了下,
比如parseint(0x10)===>parseint(10,16)===>16和最上面的结果相符,但却和我刚说的,不是字符就自动不解析就应该理解成parseint(0)相违背。
这里就需要注意下,parseint里面的number是这样的,当如果第一个不是0且不是字符就认为是10进制,一切照旧执行,遇到字母就停下来。又当如果是第一个是0,后面那个就需要注意了,如果是x就继续往下走,这里的x不代表数值,只能和前面的0一起组成0x代表16进制的单位,后面的才按上面我们讲的遇到非数字停止解析的规则来。比如parseint(0xt)==>parseint(0x)==>parseint(,16)就是nan了。
总结下,parseint(number)里面的值:如果是第一位不是0就遇到字母就停止解析,并把字母前面的值作为10进制去解析,如果第一个就是字母那么值就是空,空成了nan,
比如:parseint(a)==>parseint(,10)==>nan.parseint(10a)==>parseint(10)==>parseint(10,10)==>10;
如果第一位是0,且第2位不是x也和上面一样遇到字母就停止解析,并把字母前面的值作为8进制去解析,比如:parseint(0a)==>parseint(0)==>parseint(0,10)==>0.ps:这个有点特殊,因为0a被解析成了0,还不具备看做是8进制的结构,下面那个就明显了。
parseint(010a)==>parseint(010)==>parseint(10,8)==>8;如果第一位是0,且第2位是x那后面也和上面一样遇到字母就停止解析,并把字母前面的值作为16进制去解析,比如:parseint(0xt)==>parseint(,16)==>nan.parseint(0x12t)==>parseint(12,16)==>18.
以上就是js中parseint函数的简单介绍的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product