2

这段代码:

var x = 8,
    y = 12;

let ( x = 5, y = 10) {
   return x + y;
} 

..给出“语法错误:扩展模式外的非法 let 声明”

但是使用“使用严格”它可以正常工作。

所以有趣的是为什么“让”首先与“使用严格”模式集成?(根据http://kangax.github.io/compat-table/es6/#nodeharmony

4

1 回答 1

6

let不是 ES3 时代 JavaScript 中的保留字。例如,您可以这样做:

var let = 5;

这将声明一个名为let. ES5 规范具有前瞻性,并将他们希望在未来使用的关键字保留在严格模式函数中。所以在 ES6 世界中,它们可以解析let为关键字,但只能在严格的容器中。在严格容器之外,向后兼容要求将let其视为标识符,而不是关键字。

于 2015-03-26T16:15:44.990 回答