社区
JavaScript
帖子详情
parseInt('08')到底是什么?
leo_space
2015-11-01 12:23:03
网上搜索了一些资料,都说parseInt('08')结果是0,因为0开头的字符串在转换为整数时会按八进制转换。但是我在IE11,谷歌浏览器,360浏览器中alert(parseInt('08'))弹出结果都是8,这到底是怎么回事呢?
...全文
166
8
打赏
收藏
parseInt('08')到底是什么?
网上搜索了一些资料,都说parseInt('08')结果是0,因为0开头的字符串在转换为整数时会按八进制转换。但是我在IE11,谷歌浏览器,360浏览器中alert(parseInt('08'))弹出结果都是8,这到底是怎么回事呢?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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
字符转化为数字函数使用小结
parseInt
(“10”) 到 以后都能得到正确的结果,但如果是
parseInt
(“
08
”) 或
parseInt
(“09”)则返回0; 首先看
parseInt
语法:
parseInt
(string, radix); 如果后面参数没写就以第一个的开头判断其中string为要转换的...
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 - ...
parseInt
("
08
")或
parseInt
("09")转换返回0的解决办法
使用
parseInt
()转换'01'~'07'时可以转换成整数1~7,而转换'
08
'和'09'时,就会出现转换结果不是7和8,而是为'0'的情况,不熟悉
parseInt
()函数的人会很奇怪为什么结果会变成0呢?出现这种情况是因为我们平时使用...
js中的
parseInt
("
08
") 得到0的问题
parseInt
("
08
") = 0 要转换
08
,则需要:
parseInt
("
08
", 10) = 8 表示要转换为十进制 原因: 八进制的表示通常在数字前面加"0",所以当
08
出现时,该函数自动认为要转换数字是八进制,所以逢八
JavaScript
87,997
社区成员
224,708
社区内容
发帖
与我相关
我的任务
JavaScript
Web 开发 JavaScript
复制链接
扫一扫
分享
社区描述
Web 开发 JavaScript
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章