SCRPT5039: Redeclaration of const property line 1 character 1
第1行:var editObj = null;
这是文件的开头,我检查以确保该变量不在被调用的任何其他js文件中。这是说我以后重新宣布它吗? (如果这样,行引用没用)或者这有什么问题?
答案 0 :(得分:5)
我使用以下代码收到此错误:
var window;
使用以下代码时,我已添加此声明以解决节点错误:
if (!window) {
//node-specific stuff
}
如果没有上述声明,节点会抱怨。最后,我选择复制/粘贴而不是尝试在节点和浏览器实现之间共享完全相同的文件。
答案 1 :(得分:4)
HTML1113: Document mode restart from Quirks to IE9 Standards
这表明IE找到它认为是错误的内容,因此在Quirks模式下再次加载页面。加载页面两次使它认为一切都被声明了两次。因此解决方案是找到IE不喜欢的内容。
首先,我通过online HTML validator运行了该页面。接下来,我通过jsLint运行了我的javascript。毕竟,IE9似乎很开心。作为奖励,我有更好的质量代码。我希望。
答案 2 :(得分:3)
我遇到了同样错误的类似问题,但我的第一行代码是alert(0);
我已经插入以确保脚本正在加载!有趣的是,脚本是根据IE9的开发人员工具加载的,但第一行从未执行过,错误指向此alert(0);
作为重新声明。我甚至在它之前插入了行和空格,并且相应地改变了行和字符数。然而,这(显然)不是被重新宣布的东西,因为它甚至不是宣言,更不用说重新声明了!
我从脚本末尾删除了块,直到它执行alert(0);
(表示脚本已加载并已成功解析),我发现违规行是:
var screen;
原来IE9已经有window.screen
与此声明相冲突,并将我的screen
重命名为eScreen
解决了问题。
所以我的回答是:不要相信IE9指示重新声明的位置!
(值得注意的是,脚本在IE7,IE8和IE10上的原始格式运行良好,而不是在IE9上。)
答案 3 :(得分:1)
我在我的代码中遇到了同样的问题,结果显示IE显示错误的行是重新声明出现的。就我而言,这是我后来在代码中使用的历史。您应该检查整个代码以重新声明常量。您可以尝试注释掉部分代码,看看它何时抛出该错误。
答案 4 :(得分:1)
出现错误是因为您声明了一些与默认浏览器属性匹配的全局/局部变量。像
这样的东西var window = '';
var navigator = '';
尝试删除/评论此类声明并查看效果。
答案 5 :(得分:1)
我也遇到了这个错误-问题是它触发的线路完全是伪造的。像OP一样,这是我脚本中的前几行被标记:
var h_combinedView = true;
该错误消息极具误导性:“ 0x800a041c-JavaScript运行时错误:Let / Const重新声明”
标记行不是const定义,并且它的值在我的整个项目中都定义一次,而不再定义。
最终,我将问题归结为实际重复的const定义。
const ve = { Normal: 'default', Search: 'search', View: 'view', Alts: 'ViewAlts', Edit: 'edit' }
(我已将多个地方使用的定义移到共享文件中,却忘记删除一个副本)。错误消息是合法的-它是一个重复的const定义-但标记的行和标识符与该问题无关。
没有什么不正确的错误消息会迫使我浏览代码。
:-)
答案 6 :(得分:0)
我遇到了同样的错误,并发现了这篇文章。虽然我没有与OP相同的root问题我认为我会分享我的解决方案,以防其他人犯同样的错误并到达这里。我在一个单独的js文件中收到错误。在简化之后,我发现我可以从以下代码生成错误:
var foo = null;
var bar = null;
var localData = null;
错误说它来自第一行。然而,foo没有被重新宣布。问题是localData必须在别处使用(不在我的代码中)。无论文件localData被声明多远,都将错误列为第一行实际代码。
因此,如果其他解决方案不起作用,请尝试重命名代码文件中的每个变量,以确定哪个可能导致问题。不要相信调试器指向正确的行。
遇到:HTML5 / JS Window Store应用程序。
答案 7 :(得分:0)
根据我做git merge的错误,我发现我已经在我的HTML中包含了两次脚本。这样,当它第二次运行脚本时,它重新声明了变量。
它只给了我第一个const
的错误,这让我感到困惑,因为我试图删除变量或在文件中添加另一个变量,它总是给我第一行的错误