本文介绍了在JavaScript中,eval(010)返回8的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如果我使用代码:

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

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

I get 8 written on the page. Why?This happens even if 010 isn't a string.

推荐答案

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

Because 010 is parsed as octal. Javascript treats a leading zero as indicating that the value is in base 8.

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

Similarly, 0x10 would give you 16, being parsed in hex.

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

If you want to parse a string using a specified base, use parseInt:

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

这篇关于在JavaScript中,eval(010)返回8的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-01 10:15