仅当值 = 9 或 8 时才会出现奇怪的 javascript 错误
我有这个 http://jsfiddle.net/gMDfk/1/ 警报返回 0 当值等于八或九时,jsfiddle 中的代码可以完美工作。 这是怎么回事?
Possible Duplicate:
Workarounds for JavaScript parseInt octal bug
well i have this
http://jsfiddle.net/gMDfk/1/
The alert returns 0
The code in jsfiddle works perfect when value is equal to eight or nine..
Wtf is going on here?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
在 parseInt: 中添加
, 10
,告诉 JS 将 is 视为以 10 为基数的数字。默认情况下,任何以
0
开头的内容都被视为八进制、以 8 为基数的数字。由于09
不是有效的 8 进制数字,因此您将得到0
add a
, 10
to parseInt:which tells JS to treat is as a base-10 number. By default, anything starting with
0
is treated as an octal, base-8 number. Since09
isn't a valid base-8 number, you'll get0
数字前面加上 0 意味着它被 JavaScript 解释为八进制。试试这个:
您可以通过将
10
作为第二个参数传递给parseInt
来修复它,这让它知道您希望以十进制解析它。Prefixing a number with a 0 means it's interpreted as octal by javascript. Try this:
You can fix it by passing
10
as a second param toparseInt
, this lets it know you want it parsed in decimal.Parseint 应使用基数参数:parseint(value, radix)。在你的例子中,基数是 10。否则,它将把它当作八进制。
Parseint should use radix parameter: parseint (value, radix). In your case, radix is 10. Otherwise, it will take it as octal.
指定基础
specify the base