本文介绍了在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的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!