js中parseInt函数浅谈


Posted in Javascript onJuly 31, 2013

从很热门的实例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.

Javascript 相关文章推荐
Domino中运用jQuery读取视图内容的方法
Oct 21 Javascript
初学js 新节点的创建 删除 的步骤
Jul 04 Javascript
JavaScript中的连字符详解
Nov 28 Javascript
js实现简单选项卡与自动切换效果的方法
Apr 10 Javascript
js实现input框文字动态变换显示效果
Aug 19 Javascript
js改变html的原有内容实现方法
Oct 05 Javascript
javaScript+turn.js实现图书翻页效果实例代码
Feb 16 Javascript
单行 JS 实现移动端金钱格式的输入规则
May 22 Javascript
Node.js学习之查询字符串解析querystring详解
Sep 28 Javascript
详解extract-text-webpack-plugin 的使用及安装
Jun 12 Javascript
详解JS函数stack size计算方法
Jun 18 Javascript
详解JavaScript 的变量
Mar 08 Javascript
JavaScript中的关键字"VAR"使用详解 分享
Jul 31 #Javascript
JavaScript 和 Java 的区别浅析
Jul 31 #Javascript
javascript检查表单数据是否改变的方法
Jul 30 #Javascript
JS 对输入框进行限制(常用的都有)
Jul 30 #Javascript
JS无限极树形菜单,json格式、数组格式通用示例
Jul 30 #Javascript
js中widow.open()方法使用详解
Jul 30 #Javascript
Extjs NumberField后面加单位实现思路
Jul 30 #Javascript
You might like
hessian 在PHP中的使用介绍
2010/12/13 PHP
PHP file_exists问题杂谈
2012/05/07 PHP
php 目录遍历、删除 函数的使用介绍
2013/04/28 PHP
PHP实现把数字ID转字母ID
2013/08/12 PHP
PHP删除数组中特定元素的两种方法
2019/02/28 PHP
一文掌握PHP Xdebug 本地与远程调试(小结)
2019/04/23 PHP
php设计模式之适配器模式原理、用法及注意事项详解
2019/09/24 PHP
jquery图片上下tab切换效果
2011/03/18 Javascript
Javascript浮点数乘积运算出现多位小数的解决方法
2014/02/17 Javascript
js实现iframe框架取值的方法(兼容IE,firefox,chrome等)
2015/11/26 Javascript
深入解析Backbone.js框架的依赖库Underscore.js的作用
2016/05/07 Javascript
javaScript语法总结
2016/11/25 Javascript
JavaScript面向对象精要(上部)
2017/09/12 Javascript
node+vue实现文件上传功能
2020/05/28 Javascript
python基础教程之循环介绍
2014/08/29 Python
Python中使用wxPython开发的一个简易笔记本程序实例
2015/02/08 Python
用Python解析XML的几种常见方法的介绍
2015/04/09 Python
Python 统计字数的思路详解
2018/05/08 Python
详解Python中的四种队列
2018/05/21 Python
Pandas读取MySQL数据到DataFrame的方法
2018/07/25 Python
Python3爬虫学习之应对网站反爬虫机制的方法分析
2018/12/12 Python
Django如何开发简单的查询接口详解
2019/05/17 Python
Python数据分析pandas模块用法实例详解
2019/11/20 Python
OpenCV python sklearn随机超参数搜索的实现
2020/01/17 Python
Python with标签使用方法解析
2020/01/17 Python
关于tf.reverse_sequence()简述
2020/01/20 Python
python基于property()函数定义属性
2020/01/22 Python
美国最大的万圣节服装网站:HalloweenCostumes.com
2017/10/12 全球购物
店长岗位的工作内容
2013/11/12 职场文书
幼儿园六一儿童节主持节目串词
2014/03/21 职场文书
物业管理专业自荐信
2014/07/01 职场文书
个人年终总结结尾
2015/03/06 职场文书
毕业论文致谢怎么写
2015/05/14 职场文书
复兴之路观后感
2015/06/02 职场文书
2016幼儿园中班开学寄语
2015/12/03 职场文书
mysql数据库入门第一步之创建表
2021/05/14 MySQL