相信大家都知道parseInt()是做什么的,这里就不啰嗦了。以前用parseInt ,
记得在某本javascript书上看过,他还可以有第二个参数,不过从来没有用过,直到今天,我看到两行代码:parseInt;
//0parseInt;
//8发现,不理解为什么,于是花了一个小时细细的研究了下,原来parseInt是介样滴~当然这里分为两种情况:javascript教程:实例详解parseInt-Web前端之家。一.parseInt——只带一个参数,第二个参数省略情况——此时省略第二个参数时,默认表示十进制,故’12’表示为十进制的——‘此处虽省略第二个参数,但是’012’是以’0’开头,所以默认为8进制——‘此处虽省略第二个参数,但是’012’是以’0x’开头,所以默认为16进制二.
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进制,所以结果9数据解读,8.
alert; //0
解:这里8进制的’08’只截取’0’操作9. alert;
//NAN
解:因为8进制中不可能出现8,所以直接NAN10. alert;
//18
解:这里’0x12’是以’0x’开头,所以默认是16进制,16进制的’12’转换为10进制为18好啦,这就是我的理解,有什么用词不准确的地方,欢迎拍砖,轻点儿哦

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

相关文章

网站地图xml地图