js parseInt("08")未指定进位制问题

其中string为要转换的字符串,radix为二进制,八进制,十六进制或十进制。
在默认不指定radix时,当以0x开关时,为十六进制;如果以0开关且第二位不为x,则让为是八进制,(因为八进制不能有8,9所以报错返回0)。
所以,在我们用时还是明确指定进位制,以防出错。
如我们平时都用十进制位,我们就 parseInt("08", 10);

(0)

相关推荐

  • js parsefloat parseint 转换函数

    js parsefloat parseint JavaScript提供了3个显式的类型转换函数,分别是eval().parseInt()和parseFloat(). eval()函数:将字符串表达式转换成数字值.例如,语句total=eval("432.1*10")的结果是total=4321即将数值4321赋予total变量. parseInt()函数:把字符串转换成整数.返回是从字符串的第一个字符开始,如果字符不是以整数开头则返回0.parseInt()函数还可以转换十六进制数或十

  • 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进行数据类型转换(jquery)

    js获取到的数据默认都是string字符串类型的,如果进行数值的运算必须使用parseInt进行转换成数值的操作. html代码: 复制代码 代码如下: <div id="archive">     <input type="hidden" name="page" value="1" /> </div> js代码: 复制代码 代码如下: $("#archive").bin

  • parseInt parseFloat js字符串转换数字

    方法主要有三种 转换函数.强制类型转换.利用js变量弱类型转换. 1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把值转换成浮点数.只有对String类型调用这些方法,这两个函数才能正确运行:对其他类型返回的都是NaN(Not a Number). 在判断字符串是否是数字值前,parseInt()和parseFloat()都会仔细分析该字符串.parseInt()方法首先查看位置0处的字符,判断它是否是个有效数字:如果不是,该方法将

  • js parseInt的陷阱分析小结

    复制代码 代码如下: var a = parseInt("09"), b = Number("09"); 很多人会认为a和b的值都是数字9,但实际上不是. parseInt的主要作用是把字符串转换为整数,或者把小数转换为整数.一般情况下,我们只用到它的第一个参数.但实际上,它有两个参数: parseInt(string, radix) parseInt会根据radix指定的进制进行转换,比如: 复制代码 代码如下: alert(parseInt("10&q

  • js parseInt("08")未指定进位制问题

    其中string为要转换的字符串,radix为二进制,八进制,十六进制或十进制. 在默认不指定radix时,当以0x开关时,为十六进制:如果以0开关且第二位不为x,则让为是八进制,(因为八进制不能有8,9所以报错返回0). 所以,在我们用时还是明确指定进位制,以防出错. 如我们平时都用十进制位,我们就 parseInt("08", 10);

  • JavaScript中的ParseInt("08")和“09”返回0的原因分析及解决办法

    今天在程序中出现一个bugger ,调试了好久,最后才发现,原来是这个问题. 做了一个实验: alert(parseInt("01")),当这个里面的值为01====>07时都是正常的,但是在"08","09"就会返回0 (这种现象出现在ie内核的浏览器中,如360浏览器就会出现这种错误)(谷歌,火狐不受影响) . 查阅资料得知着这种现象原因: 大神的解释: 01--07自然没有问题,但是09,08都是不合格的八进制形式,所以被按照0处理了

  • javascript parseInt() 函数的进制转换注意细节

    parseInt(string, radix) 有2个参数,第一个string 是传入的数值,第二个radix是 传入数值的进制,参数radix 可以忽略,默认为 10,各种进制的数转换为 十进制整数(如果不是整数,向下取整). radix 的取值范围是 2~36,如果 radix 为 1 或 radix>36 ,转换结果将是 NaN ,如果 radix 为 0 或其它值将被忽略,radix 默认为 10 . 该函数要求第一个参数是字符串,如果不是字符串将被转换成字符串,而且,在进行转换之前,字

  • 解析PHP自带的进位制之间的转换函数

    bindec() -- 二进制转换为十进制 decbin() -- 十进制转换为二进制 dechex() -- 十进制转换为十六进制 decoct() -- 十进制转换为八进制 hexdec() -- 十六进制转换为十进制 octdec() -- 八进制转换为十进制 base_convert()-- 在任意进制之间转换数字

  • Js中parseInt的使用及注意事项

    目录 start 回顾一下map 学习一下 parseInt 总结: 总结 start 先看一个题目['1','2','3'].map(parseInt) 乍一看,我写下答案:[1,2,3] 控制台运行:['1',NaN,NaN] 为什么?map函数我很熟悉了,那么问题出在哪里?大概率出在 parseInt上了 回顾一下map map() 方法创建一个新数组,这个新数组由原数组中的每个元素都调用一次提供的函数后的返回值组成.总共就两个参数,一个是回调函数,一个是指定对应的this. 1.第一个参

  • JavaScript高级程序设计(第3版)学习笔记3 js简单数据类型

    ECMAScript是一种动态类型的语言,构建于5种简单数据类型(Undefined.Null.Boolean.Number.String)和一种复杂数据类型(Object)的基础之上.这篇文章就来复习一下简单数据类型,我会尽量从编程实践的角度来描述,下面代码运行环境为FireFox 14.0.1. 简单数据类型 简单数据类型 取值 Undefined undefined(只有一个值) Null null(只有一个值) Boolean true|false(只有两个值) Number 数值 St

  • 关于javascript中的parseInt使用技巧

    要对表单中填写的日期格式进行客户端验证,于是在网上找了段代码,其中用到parseInt对年月日做判断,其中有类似这样的语句: ...... else if(parseInt(month)<1 || parseInt(month) >12) ...... 可是对于当前本来正确的日期,这里怎么也通不过.后来一查才明白,parseInt实际上有两个参数,第一个是要转换的值,第二个是指定的进制.如果不指定第二个参数,那么它只能正确地转换01到07(即把它们转换成1到7),从08开始,它就会按照&quo

  • javascript parseInt 大改造

    还隐约记得得知了来龙去脉,为自己掌握了一个经验而欢呼雀跃. 还隐约记得被这同一问题折磨了无数次后,无奈与痛下决心的心境. 首先我必须感谢那些即使这个问题我强调过无数次,也依然反复重复类似错误的人们. 没有他们反复犯错的鼓励,或许我不会认真考虑这个问题的解决方案. 其次,必须感谢<JavaScript高级程序设计>的作者和译者. 在这里我得到了解决该问题的启示,不然我依然要每每强调使用parseInt时应注意什么. 同时,希望在这里不仅仅留下一个解决方案. 解决问题的思路与想法,以及对问题举一反

  • javaScript parseInt字符转化为数字函数使用小结

    今天测的时候发现问题了,当数据库中月份为09的时候就出问题了,用parseInt转换之后就成0了.好不解.测了好久,没有发现我代码中的问题,到google搜了一下,才知道是这么一回事. 对于parseInt("01")到parseInt("07");parseInt("10") 到 以后都能得到正确的结果,但如果是parseInt("08") 或parseInt("09")则返回0: 首先看parseInt

随机推荐