社区
JavaScript
帖子详情
parseInt('08')到底是什么?
leo_space
2015-11-01 12:23:03
网上搜索了一些资料,都说parseInt('08')结果是0,因为0开头的字符串在转换为整数时会按八进制转换。但是我在IE11,谷歌浏览器,360浏览器中alert(parseInt('08'))弹出结果都是8,这到底是怎么回事呢?
...全文
161
8
打赏
收藏
parseInt('08')到底是什么?
网上搜索了一些资料,都说parseInt('08')结果是0,因为0开头的字符串在转换为整数时会按八进制转换。但是我在IE11,谷歌浏览器,360浏览器中alert(parseInt('08'))弹出结果都是8,这到底是怎么回事呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
leo_space
2015-11-03
打赏
举报
回复
结贴了。ParseInt在转换0开头的字符串时,低版本的浏览器和高版本的浏览器有不同的实现。低版本浏览器会以八进制来转换,高版本浏览器以十进制来转换。为了避免这个坑,还是老老实实的加上ParseInt的第二个参数,来指定十进制转换。ParseInt("08","10")
qq_31182999
2015-11-03
打赏
举报
回复
拍摄于《JavaScript权威指南》,第一部分-3.8.3
xuzuning
2015-11-01
打赏
举报
回复
08 不可能解释为八进制数,因为八进制数只有0、1、2、3、4、5、6、7 八个状态 所以低版本的浏览器将其解释成 0,而高版本浏览器将其解释成十进制数 parseInt('010') 才是10进制8
xuzuning
2015-11-01
打赏
举报
回复
我前面已经说了,低版本浏览器中 parseInt('08') 都是 0,高版本的都是 8 这是技术的进步:智能识别
leo_space
2015-11-01
打赏
举报
回复
引用 4 楼 xuzuning 的回复:
那也不是 parseInt('077') 就是 63
也不尽然。我在火狐浏览器里测试,parseInt('077') 是63,同时parseInt('08')是0,但其他浏览器里均是77和8。 个人猜测,parseInt函数在不同的浏览器有不同的实现方式
xuzuning
2015-11-01
打赏
举报
回复
那也不是 parseInt('077') 就是 63
KK3K2005
2015-11-01
打赏
举报
回复
我觉得你以你测试的结果为准
leo_space
2015-11-01
打赏
举报
回复
[quote=引用 1 楼 xuzuning 的回复:] 08 不可能解释为八进制数,因为八进制数只有0、1、2、3、4、5、6、7 八个状态 所以低版本的浏览器将其解释成 0,而高版本浏览器将其解释成十进制数 也就是说,在现代浏览器里,使用parseInt不用考虑这个隐藏的八进制转换了是吗?
javascript
parseInt
函数分析(转).docx
javascript
parseInt
函数分析(转).docx
javaScript
parseInt
字符转化为数字函数使用小结
今天测的时候发现问题了,当数据库中月份为09的时候就出问题了,用
parseInt
转换之后就成0了。好不解。测了好久,没有发现我代码中的问题,到google搜了一下,才知道是这么一回事。 对于
parseInt
(“01”)到
parseInt
(“07”);
parseInt
(“10”) 到 以后都能得到正确的结果,但如果是
parseInt
(“
08
”) 或
parseInt
(“09”)则返回0; 首先看
parseInt
语法:
parseInt
(string, radix); 如果后面参数没写就以第一个的开头判断其中string为要转换的字符串,radix为二进制,八进制,十六进制或十进制。 在默认不指定ra
javascript
parseInt
函数分析(转)
javascript的
parseInt
函数 javascript的
parseInt
函数,大家都知道是干啥的 但你知道
parseInt
(“07”) 返回多少 ?
parseInt
(“
08
”) 又返回多少 ? 正确答案是
parseInt
(“07”) 返回8
parseInt
(“
08
”) 返回0 你知道问题在哪? 其实,这个问题可能大家都没想过吧。 用javascript的
parseInt
函数时,
parseInt
(“
08
”)或者
parseInt
(“09”)返回的居然是0, 而
parseInt
(“01”)…
parseInt
(“07”)都是正确的。 为什么这样呢? 一开始很难理解,后来发现出现这个
js
parseInt
("
08
")未指定进位制问题
今天在做JS关于月份的判断,对于
parseInt
("01")到
parseInt
("07");都能得到正确的结果,但如果是
parseInt
("
08
")或
parseInt
("09")则返回0,首先看
parseInt
语法:
parseInt
(string, radix);
js的
parseInt
("
08
")
js的
parseInt
(“
08
”)事件 不小心范了一个低级错误,这个问题也是很多初学者容易忽略滴,它就是js中的整数转换函数
parseInt
(string, radix)。 使用
parseInt
转换"01" - "07"时,返回的结果和预期的一样,相应得到1 - 7,如果是
parseInt
(“
08
”)、
parseInt
(“09”)…,那么得到的数值将不是8、9…,大家可以试试。 不清楚parseI...
JavaScript
87,976
社区成员
224,703
社区内容
发帖
与我相关
我的任务
JavaScript
Web 开发 JavaScript
复制链接
扫一扫
分享
社区描述
Web 开发 JavaScript
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章