片段 - 标识符已经声明

时间:2017-01-17 14:16:53

标签: google-chrome

我在Chrome代码段中写道:

let myVar = someValue;

当我第二次尝试运行它时,它表示变量已经声明并在第一行引发错误。

错误是:

  

Uncaught SyntaxError:Identifier' myVar'已经   已经宣布       at:1:1

当然,这将是控制台的默认行为,但它似乎在这里没有多大意义..

这是打算吗?有没有办法解决这个问题?

8 个答案:

答案 0 :(得分:12)

我相信您已经遇到这样一个事实:let语句只能用于在任何给定范围内创建一次变量。在您的示例中,即使您正在使用Chrome代码段,如果您在window.commitPromotionData语句后立即输出let,您也会看到它在那里。这是您的let语句分配变量的范围。重新运行相同的代码段实际上会尝试在窗口中创建相同的变量,并导致语法错误,如文档here所示。

您有两种解决方法:

  1. 显然,第一个是将任何顶级let语句转换为var
  2. 或者创建一个新的块范围来包装代码。这可以通过将代码包装在IIFE (function(){ ... code ... })()
  3. 中来完成

答案 1 :(得分:6)

使用块范围并将其包装在“{}”中。

{
  enter code here
}

答案 2 :(得分:2)

错误是您在范围内声明了两次变量。

您可以重新加载或刷新页面,然后获得新范围,错误将消失。

答案 3 :(得分:1)

有时候,当不使用{}作用域时,Chrome已经损坏。要修复此问题,您需要关闭并删除该代码段,然后打开一个新代码段,然后粘贴上一个代码段

答案 4 :(得分:0)

之所以发生这种情况,是因为您在另一个代码片段中的某个地方使用了具有相同名称的变量。确保保存您的代码段,然后刷新页面。

要阻止这种情况的发生,请在代码段代码周围使用{}创建一个块,以使内部的变量无法从外部访问。

答案 5 :(得分:0)

只需暂停脚本执行。在控制台的右上方

答案 6 :(得分:0)

我遇到了这个问题,但是我的错是我错误地链接了相同的js文件两次,一次是在顶部(在HTML head标签内部),另一次是在标签之前。我从head标记中删除了链接的js,然后将其留在</body>标记之前,并且我的代码可以正常工作。 这可能与其他答案无关,但有时我们作为人类,可能是我的这种疏忽。

在其他新闻中,这是Google Chrome浏览器的tweet,表明此问题已得到解决。

答案 7 :(得分:-2)

长镜头: 仅当出现错误弹出窗口时,单击控制台控制台上并暂停例外情况(从左起第7个选项) ,现在您就可以工作了:)。GO 控制台并执行,您的程序可以正常工作.....