【发布时间】:2012-08-16 22:58:38
【问题描述】:
我在使用 Mozilla Rhino 作为 JavaScript 引擎时偶然发现了一个奇怪的 JavaScript 错误。
这一行脚本抛出错误:
eval("const a = 5;");
错误是:
TypeError: redeclaration of var a.
如果该行被执行多次,我预计会出现这个错误 - 但它只执行一次,因为这一行是整个程序。
谁能解释一下,为什么会出现这个错误?
【问题讨论】:
-
Odds 是您包含的其他脚本之一,已经声明了一个名为
a的常量。尝试从头部一个一个地删除脚本(特别是第 3 方,如果你知道你没有),直到这个错误不出现 -
Rhino如何执行JS?
-
我在 Eclipse 中执行了它 - 没有包含其他脚本。我怀疑这是 Rhino 中的一个错误,因为它适用于 Chrome。
-
@user1407611 尝试验证其用法.. if (typeof(a) == "undefined") {....}
-
我无法在 Firefox 控制台中重现该错误。
eval("const a = 5; a");日志5.
标签: javascript constants eval redeclaration