JavaScript中的ParseInt("08")和“09”返回0的原因分析及解决办法
今天在程序中出现一个bugger ,调试了好久,最后才发现,原来是这个问题。
做了一个实验:
alert(parseInt("01")),当这个里面的值为01====》07时都是正常的,但是在"08","09"就会返回0
(这种现象出现在ie内核的浏览器中,如360浏览器就会出现这种错误)(谷歌,火狐不受影响)
。
查阅资料得知着这种现象原因:
大神的解释:
01--07自然没有问题,但是09,08都是不合格的八进制形式,所以被按照0处理了。为了解决这个问题,可以利用parseInt函数的另一个参数,显示的告诉parseInt按照十进制处理。
parseInt("08",10) 或者 parseInt("09",10)
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() 将把它当作十进制数。
以上所述是小编给大家介绍的JavaScript中ParseInt("08")和“09”返回0的原因分析及解决办法的相关知识,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
相关推荐
-
javascript parseInt 大改造
还隐约记得得知了来龙去脉,为自己掌握了一个经验而欢呼雀跃. 还隐约记得被这同一问题折磨了无数次后,无奈与痛下决心的心境. 首先我必须感谢那些即使这个问题我强调过无数次,也依然反复重复类似错误的人们. 没有他们反复犯错的鼓励,或许我不会认真考虑这个问题的解决方案. 其次,必须感谢<JavaScript高级程序设计>的作者和译者. 在这里我得到了解决该问题的启示,不然我依然要每每强调使用parseInt时应注意什么. 同时,希望在这里不仅仅留下一个解决方案. 解决问题的思路与想法,以及对问题举一反
-
javascript parseInt() 函数的进制转换注意细节
parseInt(string, radix) 有2个参数,第一个string 是传入的数值,第二个radix是 传入数值的进制,参数radix 可以忽略,默认为 10,各种进制的数转换为 十进制整数(如果不是整数,向下取整). radix 的取值范围是 2~36,如果 radix 为 1 或 radix>36 ,转换结果将是 NaN ,如果 radix 为 0 或其它值将被忽略,radix 默认为 10 . 该函数要求第一个参数是字符串,如果不是字符串将被转换成字符串,而且,在进行转换之前,字
-
js中parseInt函数浅谈
从很热门的实例parseInt("09")==0说起.parseInt(number,type)这个函数后面如果不跟第2个参数来表示进制的话,默认是10进制.比如说parseInt("010",10)就是10进制的结果:10,parseInt("010",2)就是2进制的结果:2,parseInt("010",8)就是8进制的结果:8,parseInt("010",16)就是2进制的结果:16. 下面我来说
-
js parseInt的陷阱分析小结
复制代码 代码如下: var a = parseInt("09"), b = Number("09"); 很多人会认为a和b的值都是数字9,但实际上不是. parseInt的主要作用是把字符串转换为整数,或者把小数转换为整数.一般情况下,我们只用到它的第一个参数.但实际上,它有两个参数: parseInt(string, radix) parseInt会根据radix指定的进制进行转换,比如: 复制代码 代码如下: alert(parseInt("10&q
-
js数值计算时使用parseInt进行数据类型转换(jquery)
js获取到的数据默认都是string字符串类型的,如果进行数值的运算必须使用parseInt进行转换成数值的操作. html代码: 复制代码 代码如下: <div id="archive"> <input type="hidden" name="page" value="1" /> </div> js代码: 复制代码 代码如下: $("#archive").bin
-
javascript 数据类型转换(parseInt,parseFloat)
javascript有两种数据类型的转换方法: (一)将整个值从一种类型转换为另一种数据类型(称作基本数据类型转换) (二)从一个值中提取另一种类型的值,并完成转换工作 基本数据类型转换的三种方法: 1.转换为字符型:String(); 例:String(678)的结果为"678" 2.转换为数值型:Number(); 例:Number("678")的结果为678 3.转换为布尔型:Boolean(); 例:Boolean("aaa")的结果为t
-
javascript parseInt与Number函数的区别
但是parseInt("08", 10)是可以返回8的. 为搞清楚两者的区别, 参考了别人写的parseInt&Number的区别: parseInt Parses a string argument and returns an integer of the specified radix or base. 核心函数 实现版本 Navigator 2.0: If the first character of the string specified in parseInt(s
-
js parsefloat parseint 转换函数
js parsefloat parseint JavaScript提供了3个显式的类型转换函数,分别是eval().parseInt()和parseFloat(). eval()函数:将字符串表达式转换成数字值.例如,语句total=eval("432.1*10")的结果是total=4321即将数值4321赋予total变量. parseInt()函数:把字符串转换成整数.返回是从字符串的第一个字符开始,如果字符不是以整数开头则返回0.parseInt()函数还可以转换十六进制数或十
-
javascript中的parseInt和parseFloat区别
先看代码: 复制代码 代码如下: <script> alert(parseInt("3.54 apples")); alert(parseFloat("3.54 apples")); </script> <script>alert(parseInt("3.54 apples"));alert(parseFloat("3.54 apples"));</script> 运行结果: p
-
关于javascript中的parseInt使用技巧
要对表单中填写的日期格式进行客户端验证,于是在网上找了段代码,其中用到parseInt对年月日做判断,其中有类似这样的语句: ...... else if(parseInt(month)<1 || parseInt(month) >12) ...... 可是对于当前本来正确的日期,这里怎么也通不过.后来一查才明白,parseInt实际上有两个参数,第一个是要转换的值,第二个是指定的进制.如果不指定第二个参数,那么它只能正确地转换01到07(即把它们转换成1到7),从08开始,它就会按照&quo
-
JavaScript的parseInt 取整使用
Java 也有 Integer.parseInt() 方法, 但是 JavaScript 的 parseInt 处理方式与 Java 等强整型语言不太一样, 所以经常有人因为对这个方法的使用不当而获得异常返回. 下面是一段 Java 代码, 用于将字符串 020 转为整型. 复制代码 代码如下: public class Test { public static void main(String args[]) throws Exception { String str = "020"
-
javaScript parseInt字符转化为数字函数使用小结
今天测的时候发现问题了,当数据库中月份为09的时候就出问题了,用parseInt转换之后就成0了.好不解.测了好久,没有发现我代码中的问题,到google搜了一下,才知道是这么一回事. 对于parseInt("01")到parseInt("07");parseInt("10") 到 以后都能得到正确的结果,但如果是parseInt("08") 或parseInt("09")则返回0: 首先看parseInt
随机推荐
- ASP.NET对HTML页面元素进行权限控制(二)
- Microsoft Windows Vista 简体中文企业版 MVL DVD IMG 32-bit(1.9GB)
- 深入浅出ES6之let和const命令
- js导航栏单击事件背景变换示例代码
- PHP使用Mysqli类库实现完美分页效果的方法
- Python中pygame的mouse鼠标事件用法实例
- js数组中删除重复值的代码小结
- Javascript 获取滚动条位置等信息的函数
- js控制的回到页面顶端goTop的代码实现
- QQ尾巴 InfoMs.Ime 解决方案
- Python的Django框架中设置日期和字段可选的方法
- jQuery+CSS实现简单切换菜单示例
- 针对初学者的jQuery入门指南
- js实现input框文字动态变换显示效果
- javascript优先加载笔记代码
- win2008 r2 x64上配置iis的艰难历程分享
- 有关于整体刷新和局部刷新frameset窗口
- 一个基于PDO的数据库操作类
- Android Activity的生命周期详细介绍
- 详解APP微信支付(java后台_统一下单和回调)