登录模块加载中...
会员投稿 投稿指南 今天是:
打印本页 | 关闭窗口 | 双击滚屏 您的位置首页>>网页制作学习园地>>网页制作>>网页制作入门>>javascript教程:实例详解parseInt()
javascript教程:实例详解parseInt()
来源:网页教学网 ‖ 作者:网页教学网 ‖ 点击: ‖ 时间:13-01-06 10:37:05 ‖ 【 】‖ 我要投稿
相信大家都知道parseInt()是做什么的,这里就不啰嗦了。
以前用parseInt()从来都是parseInt(arg) , 记得在某本javascript书上看过,他还可以有第二个参数,不过从来没有用过,直到今天,
我看到两行代码:
parseInt("08"); //0
parseInt("08", 10); //8
发现,不理解为什么,于是花了一个小时细细的研究了下,原来parseInt是介样滴~
当然这里分为两种情况:
一.parseInt(arg)------只带一个参数,第二个参数省略情况
(1) parseInt('12')------此时省略第二个参数时,默认表示十进制,故'12'表示为十进制的
(2) parseInt('012')------'此处虽省略第二个参数,但是'012'是以'0'开头,所以默认为8进制
(3) parseInt('0x12')------'此处虽省略第二个参数,但是'012'是以'0x'开头,所以默认为16进制

二. parseInt(arg1, arg2)------arg1是要操作的数 , arg2是说明arg1是多少进制的数
(1) parseInt('12', 8)-----表示这里'12'是8进制的
(2) parseInt('78',10)-----表示这里'78'是10进制的
(3) parseInt('012',10)-----这里虽说'012'是以开头滴,默认是8进制的,但是第二个参数又强制告诉计算机'012'是一个10进制的数

好啦,知道以上的知识点后,我们再看下面的例子:
1. alert(parseInt('12', 8)); //10
解:将8进制的'12'转换为十进制 :1*8(8的1次幂) + 2*(8的0次幂) = 10;

2. alert(parseInt('012')); //10
解:这里'012'是以'0'开头,所以是8进制的,那8进制的'012'转换为十进制,都同上了,但是这里可能有人觉得,同时它也省略了第二个参数,为什么不是十进制的'012',这里其实我也不知道了,程序测试结果为10,我猜想可能是检测到以'0'开头表示8进制比省略第二个参数默认为10进制的先级高吧,欢迎知道的大侠指点

3. alert(parseInt('012', 8)); // 10
解:次中情况应该很好理解,本身'012'默认就是8进制的,后续第二个参数又强调为8进制

4. alert(parseInt('012', 10)); // 12
解:此种情况'012'默认是8进制,但是第二个参数强制告诉计算机第一个数其实是10进制,所以将'012'当10进制处理结果12

5. alert(parseInt('78',8)); //7
解:表示将8进制的'78'计算parseInt,因为8进制中不可能出现8,所以直接截取第一个数字7进行运算,7*8(8的0次幂)=7

6. alert(parseInt('08',8)); //0
解:这里同第5点

7. alert(parseInt('08',10)); //9
解:这里虽是'08'默认是8进制,但是第二个参数强制为了10进制,所以结果9

8. alert(parseInt('08')); //0
解:这里8进制的'08'只截取'0'操作

9. alert(parseInt('8',8)); //NAN
解:因为8进制中不可能出现8,所以直接NAN

10. alert(parseInt('0x12')); //18
解:这里'0x12'是以'0x'开头,所以默认是16进制,16进制的'12'转换为10进制为18
加入收藏:  加入收藏夹  | 发送给好友:  发送给好友
责任编辑:admin
  • 上一篇:KingCMS PHP企业版SP2新增标签
  • 下一篇:无
  • 相关文章列表
    请文明参与讨论,禁止漫骂攻击。  
    网友评论