JS error 'redeclaration'当它在程序中的第一行时,则为变量
JS error 'redeclaration' of var when it's first line in program?
SCRPT5039: Redeclaration of const property line 1 character 1
line1: var editObj = null;
这是文件的开始,我检查以确保变量不在任何其他被调用的js文件中。它是说我以后要重新申报吗?(如果是这样的话,行参考是没有用的)或者这有什么问题?
我得到这个错误与以下代码:
var window;
在使用以下代码时,我添加了这个声明来解决节点错误:
if (!window) {
//node-specific stuff
}
如果没有上面的声明,node就会报错。最后,我选择复制/粘贴,而不是尝试在节点和浏览器实现之间共享完全相同的文件。
修改。至少对我来说是这样。在重声明错误之前,我得到了这个错误:
HTML1113: Document mode restart from Quirks to IE9 Standards
这表明IE发现它认为是一个错误,所以在Quirks模式下再次加载页面。加载页面两次会使它认为所有内容都声明了两次。所以解决办法就是找出IE不喜欢的地方。
首先,我通过在线HTML验证器运行页面。接下来,我通过jsLint运行javascript。在这一切之后,IE9似乎很高兴。作为奖励,我有了质量更好的代码。我希望。
我遇到了同样错误的类似问题,但我的第一行代码是我插入的alert(0);
,以确保脚本正在加载!有趣的是,脚本是根据IE9的开发人员工具加载的,但是第一行从未执行过,错误指向这个alert(0);
作为重新声明。我甚至在它之前插入行和空格,行和字符号也随之改变。然而,这(显然)不是要重新声明的东西,因为它甚至不是一个声明,更不用说重新声明了!
alert(0);
(表明脚本已经加载并成功解析),我发现有问题的行是:
var screen;
原来IE9已经有一个window.screen
与此声明冲突,并将我的screen
重命名为eScreen
解决了这个问题。
所以我的回答是:不要相信IE9对重声明位置的指示!
(同样值得注意的是,脚本在IE7, IE8和IE10的原始形式下运行良好,只是在IE9上没有)
我的代码中有同样的问题,事实证明IE显示错误的行是重新声明出现。在我的例子中,它是我稍后在代码中使用的历史记录。您应该检查整个代码是否重新声明了常量。您可以尝试注释掉部分代码,并查看它何时抛出该错误。
出现错误是因为您声明了一些与默认浏览器属性匹配的全局/局部变量。比如
var window = '';
var navigator = '';
尝试删除/注释这样的声明,看看效果。
我也得到了这个错误——问题是它所触发的行完全是假的。像OP一样,这是我脚本中被标记的前一行:
var h_combinedView = true;
错误信息是非常误导:"0x800a041c - JavaScript运行时错误:让/Const重新声明"
标记的行不是const定义,它的值在我的整个项目中定义一次,再也不会定义。
最终,我将问题归结为一个实际重复的const定义。
const ve = { Normal: 'default', Search: 'search', View: 'view', Alts: 'ViewAlts', Edit: 'edit' }
(我已经将一个在多个地方使用的定义移动到一个共享文件&忘记删除一个副本)。错误消息是合法的——它是一个重复的const定义——但是标记的行和标识符与问题无关。
没有什么比不准确的错误信息更能迫使我遍历我的代码了。
:-)
我也有同样的错误,看到了这篇文章。虽然我没有与OP相同的根本问题,但我想我会分享我的解决方案,以防其他人犯同样的错误并到达这里。我在一个单独的js文件中收到了错误。简化后,我发现可以从以下代码生成错误:
var foo = null;
var bar = null;
var localData = null;
错误提示从第一行开始。然而,foo没有被重新声明。问题是localData必须在其他地方使用(不是在我的代码中)。无论在文件localData中声明了多远,错误都会在第一行代码中列出。
因此,如果其他解决方案不起作用,请尝试重命名代码文件中的每个变量,以确定哪一个可能导致问题。不要相信调试器会指向正确的行。
遇到:HTML5/JS窗口商店应用程序
从我做git合并的错误中,我发现我在HTML中包含了两次脚本。这样,当它第二次运行脚本时,它就重新声明了这个变量。
它只给了我第一个const
的错误,这让我感到困惑,当我试图删除变量或添加另一个文件时,它总是给我第一行的错误。
- 我已经创建了一个动态的下拉选择列表,它指向一行;如何使该行成为变量
- 一行中的多个变量赋值
- 如何在javascript中为变量设置一行setter
- 咖啡脚本一行,用于创建带有变量键的哈希图
- JavaScript 在一行上定义并返回一个变量
- 使用表单中的PHP按钮根据变量ID从MYSQL数据库表中删除一行
- 一个变量I'当我试图在下一行代码中使用ve initialized时,它是未定义的
- 是否可以使用&&并在同一行设置一个变量
- 你能用一行Javascript代码改变多个变量的相同属性吗?
- Javascript:测试regex并赋值给变量,如果它在一行中匹配
- 为什么有些变量声明在同一行,而大多数变量声明在各自的行上?
- JS error 'redeclaration'当它在程序中的第一行时,则为变量
- 设置多个变量在一行有效的javascript?(var x = y = & # 39;价值# 39;;)
- 用Ajax将变量发送到PHP文件以从Mysql中删除一行-不工作
- 在一行javascript中更改多个变量的值
- 这两个变量如何用一行来交换?
- 使用变量从html表中选择一行
- 赋值和返回变量在同一行
- 变量组合在一行 indexOf 方法(Eloquent Javascript)中
- 是否有可能压缩代码以允许多个变量而不是每个变量一行