您现在的位置是:首页 > 科技 >正文

parseint函数功能(parseint函数)

发布时间:2022-08-03 01:15:19成飘思来源:

导读您好,蔡蔡就为大家解答关于parseint函数功能,parseint函数相信很多小伙伴还不知道,现在让我们一起来看看吧!1、那是在IE上才会出现的问题...

您好,蔡蔡就为大家解答关于parseint函数功能,parseint函数相信很多小伙伴还不知道,现在让我们一起来看看吧!

1、那是在IE上才会出现的问题,具体是哪个版本的IE来我忘了,当调用parseInt()时,他会先把字符串变成几进制(具体几进制,我忘了)然后在转换成数字,对于纯数字的字符串建议用Number()下面是从网上找的首页 > 学习笔记 > parseInt()方法在IE9中的差异性parseInt()方法在IE9中的差异性对于parseInt()方法,ECMAScript中有这样一条规范请大家一定要注意: ECMAScript规范指出,如果一个字符串以“0”开头(而不是“0x”或“0X”开头),parseInt()可能把它解释为一个八进制数或者一个十进制数。

2、由于这一行为是不确定的,所以不应该使用parseInt()去解析用0开头的数字,除非显示的指定所使用的基数。

3、请看代码:parseInt("050");这句代码在 IE678、火狐、Opera、Safari、Chrome中,均被作为八进制进行解析,所以最终会被解析为40。

4、而在IE9下,是作为十进制来处理的,所以最终的解析结果是50。

5、另外,猜猜下面的代码运行结果都是什么: parseInt("0.12");//0 parseInt(".12");//NaN parseInt("0050");//IE9: 50, IE678+标准浏览器: 40 parseInt("-0050");//IE9: -50, IE678+标准浏览器: -40 parseInt("078");//IE9: 78, IE678+标准浏览器: 7 parseInt("08");//IE9: 8, IE678+标准浏览器: 0 parseFloat("0xFF"); //255总结:如果你真想用parseInt()来解析数字的话,一定要指定第二个参数(基数),这样是最安全的。

6、因为大多数情况下你所解析的数字都是用户输入的,而用户输入080这种东西,我想,很多验证程序都是放过的。

7、所以用parseInt()解析就有可能出现逻辑错误。

8、所以务必要指定基数。

9、例如: parseInt("050", 10); //这里指定被解析数字的基数是十进制。

10、避免了各种浏览器解析不一致的问题。

本文就讲到这里,希望大家会喜欢。

标签:

上一篇
下一篇