【问题标题】:Can i use "let" to define an array in javascript我可以使用“let”在javascript中定义一个数组吗
【发布时间】:2016-06-01 13:53:14
【问题描述】:

试过了

"use strict"
let iterable = new Map([["a", 1], ["b", 2], ["c", 3]]);

for (let entry of iterable) {
  console.log(entry);
}

但出现以下错误

未捕获的 SyntaxError:在严格模式之外尚不支持块范围的声明(let、const、函数、类)(...)

这段代码在chrome浏览器控制台中尝试时抛出错误

我这里有什么遗漏

【问题讨论】:

  • use strict 在函数声明的开头吗?
  • 您的 use strict 语句确实应该有一个分号。这就是文件中的所有代码吗?严格线之前有什么吗?
  • 它适用于火狐
  • 分号不会对您的问题产生影响。为什么它是否在 chrome 的控制台中工作很重要?
  • 是的,我想就是这样,再加上 Chrome 的 ES6 实现还没有完成。将代码包装在 IIFE 中,它可以在控制台中运行:(function() { "use strict"; /*your code*/ })()

标签: javascript ecmascript-6


【解决方案1】:

尝试从 js 文件运行你的脚本。你会看到它正在工作。您不能直接从控制台访问严格模式。这就是你的脚本不起作用的原因。 而且您绝对不需要启用任何标志。 Chrome 支持开箱即用的 let 声明。

【讨论】:

    【解决方案2】:

    这在开箱即用的 Google Chrome 中不起作用的原因是 Chrome 默认不支持 一些 ES6 功能,并将任何使用它的尝试标记为错误。

    可以将您的 Google Chrome 浏览器设置为允许使用 ES6 以访问此链接并启用设置Enable Experimental JavaScript

    chrome://flags/#enable-javascript-harmony
    

    注意:

    这可能是一个特定问题,具体取决于您的 Google Chrome 版本,但是如果您收到此错误,则启用此标志应该会有所帮助。

    【讨论】:

    • 我认为他们不久前放弃了对该标志的需求,但 Chrome 尚未完全兼容。
    • @MikeC 这可能取决于您的谷歌浏览器版本,默认情况下不允许使用哪些功能
    • @squint 我尝试在我的 Chrome 控制台中运行 OP 的代码,得到了他的错误,并启用了和谐标志,重新启动了 Chrome,然后它对我个人有用
    • 我明白了。因此,他们必须在该标志后面仍然具有最前沿的功能。
    猜你喜欢
    • 1970-01-01
    • 2017-05-12
    • 2021-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 2022-01-01
    • 1970-01-01
    相关资源
    最近更新 更多