一个奇怪的问题

chiny 2003-07-18 11:41:17
<script>
alert("开始测试 04");
alert(parseInt("04"));
alert("开始测试 08");
alert(parseInt("08"));
alert("继续测试 08");
alert(parseFloat("08"));

</script>
大家运行就知道原因了。
...全文
35 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
fzel_net 2003-07-18
  • 打赏
  • 举报
回复
????
bubuy 2003-07-18
  • 打赏
  • 举报
回复
js语法中parseInt有这样的规定而parseFloat没有
前缀为 '0x' 的字符串被当作十六进制,前缀为 '0' 的字符串被当作八进制。所有其它字符串都被当作是十进制的。
bubuy 2003-07-18
  • 打赏
  • 举报
回复
有性格的问题!
Xin114 2003-07-18
  • 打赏
  • 举报
回复
原因是这样的,因为你使用的是八进制的直接量,而08是非法的八进制表示,所以结果是0,你可以换成 alert(parseInt('010'));一试你就会发现结果是8,所以,这是因为数字直接量的表示的问题.
Xin114 2003-07-18
  • 打赏
  • 举报
回复
值得关注!!!
xuzuning 2003-07-18
  • 打赏
  • 举报
回复
不错,有想法!
chiny 2003-07-18
  • 打赏
  • 举报
回复
那么parseFloat为什么可以输出8?
flyycyu 2003-07-18
  • 打赏
  • 举报
回复
-->
parseInt("08",10);
flyycyu 2003-07-18
  • 打赏
  • 举报
回复
其实主要是这个:
alert("开始测试 08");
alert(parseInt("08"));

期输出结果是0,因为08在这里代表8进制,所以分析结果是0

87,988

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧