javascript - 在 JavaScript 中,eval(010) 返回 8

标签 javascript

<分区>

如果我使用代码:

string = '010';
write = eval(string);
document.write(write)

我在页面上写了 8。为什么? 即使 010 不是字符串,也会发生这种情况。

最佳答案

因为010被解析为八进制。 Javascript 将前导零视为表示该值以 8 为基数。

类似地,0x10 会给出 16,以十六进制解析。

如果要使用指定的基数解析字符串,请使用 parseInt:

parseInt('010', 8); // returns 8.
parseInt('010',10); // returns 10.
parseInt('010',16); // returns 16.

关于javascript - 在 JavaScript 中,eval(010) 返回 8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6718102/

相关文章:

javascript - 如何进行自动工具提示验证消息?

javascript - jquery show hide multiple div on click - 想在点击后隐藏触发器点击的链接

javascript - 如何在没有登录的情况下访问drupal管理面板

javascript - Backbone 虹吸管获取对象数组

javascript - 从 Document.Ready 调用 onchange 函数,并使用更新中预选的项目

javascript - 如何在 Kendo UI 中创建 Jalali Date Picker?

javascript - How does it snow on Google,输入 Let it snow

javascript - 正则表达式检查字符串中是否有任何单词不超过限制

javascript - 类型错误 : 'undefined' is not a function (evaluating '_class.apply(this, arguments)' )

javascript - 我没有收到 ajax 请求的响应