But*_*GOL 2 let use-strict node.js ecmascript-6
这段代码:
var x = 8,
y = 12;
let ( x = 5, y = 10) {
return x + y;
}
Run Code Online (Sandbox Code Playgroud)
..gives"SyntaxError:非法让扩展模式外的声明"
但是"使用严格"它可以正常工作.
所以有趣的是为什么'让'首先与"使用严格"模式集成?(根据http://kangax.github.io/compat-table/es6/#nodeharmony)
let
在ES3时代的JavaScript中不是一个保留词.例如,你可以这样做:
var let = 5;
Run Code Online (Sandbox Code Playgroud)
这将声明一个名为的变量let
.ES5规范具有前瞻性,并且在未来保留在严格模式功能中的关键字中使用了它们.因此在ES6世界中,它们可以let
作为关键字进行解析,但仅限于严格的容器内.在严格的容器之外,向后兼容性要求let
被视为标识符,而不是关键字.