js的parseInt("08")事件
不小心范了一个低级错误,这个问题也是很多初学者容易忽略滴,它就是js中的整数转换函数parseInt(string, radix)。
使用parseInt转换"01" - "07"时,返回的结果和预期的一样,相应得到1 - 7,如果是parseInt("08")、parseInt("09")...,那么得到的数值将不是8、9...,大家可以试试。
不清楚parseInt使用方法的兄弟就会觉得很奇怪:为什么反回的值这么怪异?
其实不是parseInt怪异,而是我们在使用过程忽略了它的第二个参数。
parseInt(string, radix)的作用是将string转换为整数,第二个参数是设置string的格式,常用的有2、8、10、16,表示string是多少进制的数。
radix 可取值的范围是2~36,如果不在这个范围内,将返回NaN。
如果设置radix的值是0或者不设置时,会自动识别string的格式:
以 "0x" 开头,parseInt() 会把 string 除0x外的其余部分当作十六进制数,
以 "0" 开头,parseInt() 会把 string 除0外的字符当作八进制或十六进制数,
以 1 ~ 9 的数字开头,parseInt() 将把它当作十进制数。
看到这里,应该明白为什么parseInt("08")返回的不是8了吧,因为把它当八进制了,而八进制是没有8的,所
以要想得到8,那就parseInt("08",10)。
总之,为了避免parseInt("08")得到0这样而不是8的问题存在,在任何使用parseInt的地方都明确指定要转换的格式,即使parseInt("5"),也要写成parseInt("5",10),养成一个好的惯,
一看就知道
parseInt("11",10) 是要将十进制的"11"转换为整数,
parseInt("11",2) 是要将二进制的"11"转换为整数。
- 评论
-
- [使用Ctrl+Enter键可以直接提交]
表情图标
- 所属分类的其它文章:
- ★Javascript获取某一标签的座标并返回其座标对象
- ★javascript操作Select标记中options集合
- ★div中放flash运行30秒钟后自动隐藏效果
- ★setTimeout和setInterval的区别
- ★attachEvent传递参数的办法
- ★JavaScript 是什么?
- ★5个有趣的浏览器地址栏JavaScript代码
- ★iframe自适应高度
- ★在文本框中光标位置插入文本
- ★event.srcElement说明,方法,技巧
- ★时间和日期的各种格式的特效代码
- ★在JS和ASP.NET中操作COOKIE
- ★添加到收藏夹 设为首页的js
- ★验证是否跨站提交
- ★变量location在Firefox和IE中的区别
- 随便看看:
Advertise
Category
Time Counter
离十一还有
Recent Article
- 1.工作笔记:AS3加载外部图片,有加载百分比
- 2.document.documentElement和document.body的区别
- 3.100种增加网站流量的方法
- 4.用div+css模拟表格对角线
- 5.如何做一个好的技术型领导
- 6.苍井空是谁?
- 7."心态"新解
- 8.程序员特有的9个坏习惯
- 9.AS3入门之简单Loading效果
- 10.系统问题:浏览器无法打开png图片
- 11.AS3中以post和get方式提交数据
- 12.defaultTextFormat和setTextFormat()区别
- 13.AS3中超方便地遍历xml
- 14.pv3d中物体常用的移动属性
- 15.开源Flash 3D引擎Papervision3d
- 16.as3 判断鼠标滚轮前滚或后滚
- 17.js:行向上替换滚动效果
- 18.为什么要清净?(禅与佛)
- 19.扩展window.setTimeout方法
- 20.收集2010的搞笑短句



