2

所以当我使用:

eval('03*3');

我应该得到9。但是当我使用:

eval('033*3');

我得到的是 81 而不是 99。我确信对这个结果有一个很好的解释,但我无法找到答案。谁能解释一下?

4

1 回答 1

9

在 JavaScript 中,与在 C 和 C++ 中一样,以零开头的数字常量被解释为 base-8(八进制)值。因此033是十进制 27 (3 * 8 + 3)。您的第一个示例有效,因为03(八进制 3)与十进制 3 相同,因为 3 是 3。多位值将关闭。

于 2013-09-05T20:18:30.400 回答