故'12'表示为十进制的------'此处虽省略第二个参数

当前位置: 澳门新葡亰1495app > Web前端 >

网页制作web前端之家文章简介:你所不知的parseInt。

故'12'表示为十进制的------'此处虽省略第二个参数。相信大家都知道parseInt()是做什么的,这里就不啰嗦了。以前用parseInt , 记得在某本javascript书上看过,他还可以有第二个参数,不过从来没有用过,直到今天,我看到两行代码:parseInt; //0parseInt; //8发现,不理解为什么,于是花了一个小时细细的研究了下,原来parseInt是介样滴故'12'表示为十进制的------'此处虽省略第二个参数。~当然这里分为两种情况:一.parseInt------只带一个参数,第二个参数省略情况故'12'表示为十进制的------'此处虽省略第二个参数。------此时省略第二个参数时,默认表示十进制,故'12'表示为十进制的------'此处虽省略第二个参数,但是'012'是以'0'开头,所以默认为8进制------'此处虽省略第二个参数,但是'012'是以'0x'开头,所以默认为16进制故'12'表示为十进制的------'此处虽省略第二个参数。故'12'表示为十进制的------'此处虽省略第二个参数。二. parseInt------arg1是要操作的数 , arg2是说明arg1是多少进制的数-----表示这里'12'是8进制的-----表示这里'78'是10进制的-----这里虽说'012'是以开头滴,默认是8进制的,但是第二个参数又强制告诉计算机'012'是一个10进制的数好啦,知道以上的知识点后,我们再看下面的例子:1. alert; //10解:将8进制的'12'转换为十进制 :1*8 = 10;2. alert; //10解:这里'012'是以'0'开头,所以是8进制的,那8进制的'012'转换为十进制,都同上了,但是这里可能有人觉得,同时它也省略了第二个参数,为什么不是十进制的'012',这里其实我也不知道了,程序测试结果为10,我猜想可能是检测到以'0'开头表示8进制比省略第二个参数默认为10进制的先级高吧,欢迎知道的大侠指点3. alert; // 10解:次中情况应该很好理解,本身'012'默认就是8进制的,后续第二个参数又强调为8进制4. alert; // 12解:此种情况'012'默认是8进制,但是第二个参数强制告诉计算机第一个数其实是10进制,所以将'012'当10进制处理结果125. alert; //7解:表示将8进制的'78'计算parseInt,因为8进制中不可能出现8,所以直接截取第一个数字7进行运算,7*8=76. alert; //0解:这里同第5点7. alert; //9解:这里虽是'08'默认是8进制,但是第二个参数强制为了10进制,所以结果98. alert; //0解:这里8进制的'08'只截取'0'操作9. alert; //NAN解:因为8进制中不可能出现8,所以直接NAN10. alert; //18解:这里'0x12'是以'0x'开头,所以默认是16进制,16进制的'12'转换为10进制为18好啦,这就是我的理解,有什么用词不准确的地方,欢迎拍砖,轻点儿哦

上一篇:JScript教程:使用JScript创建.exe或.dll文件-Web前端之家 下一篇:没有了