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