首先还是从很热门的实例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)就是16进制的结果:16。

下面我来说说没有指定进制单位的时候,默认是10进制,但:如果是里面的Number是0开头的就认为是8进制的,如果是0x开头的就认为是16进制的。

parseInt("10")==>parseInt("010",10)===>10

parseInt("010")==>parseInt("010",8)==>8

parseInt("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.

最新文章

  1. 记录最初工作下的笔记($.each)
  2. BZOJ1047: [HAOI2007]理想的正方形 [单调队列]
  3. UWP消息通知
  4. jQuery MiniUI开发系列之:使用API文档
  5. jQuery multiselect的使用
  6. java学习第5天
  7. POJ 2175 Evacuation Plan 费用流 负圈定理
  8. 三元组表压缩存储稀疏矩阵实现稀疏矩阵的快速转置(Java语言描述)
  9. css翻页样式
  10. CRLF CSRF XSS
  11. zboot/piggyback.c
  12. Mongo技巧-连接数据库与修改表结构
  13. 使用jquery获取父元素或父节点的方法
  14. 关于.net的一些基础知识(二)
  15. SGU 113.Nearly prime numbers
  16. JAVA并发实现三(线程的挂起和恢复)
  17. javascript第二课javascript规范
  18. WebRTC–getUserMedia & Canvas
  19. 微信jssdk分享链接给好友,图标只能自己看到,对方看不到!
  20. “一切都是消息”--MSF(消息服务框架)入门简介

热门文章

  1. Java-Runoob-高级教程:Java Applet 基础
  2. 透过一个实例理解C++语言的explicit关键字
  3. oracle 监听静态注册举例解析
  4. Linux 之rsyslog+LogAnalyzer 日志收集系统
  5. 咱妈说别乱点链接之浅谈CSRF攻击
  6. Spring之导入和混合配置
  7. openLayers 3 之入门
  8. Django templates 和 urls 拆分
  9. python开发最受欢迎的十款工具
  10. Dreamweaver 中文乱码