为什么“让”es6和谐仅适用于严格使用?

时间:2014-12-28 05:58:07

标签: node.js ecmascript-6 let use-strict

此代码:

var x = 8,
    y = 12;

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

..给出“SyntaxError:非法让扩展模式以外的声明”

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

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

1 个答案:

答案 0 :(得分:6)

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

var let = 5;

将声明一个名为let的变量。 ES5规范具有前瞻性,并且在未来保留在严格模式功能中的关键字中使用了它们。因此,在ES6世界中,他们可以将let解析为关键字,但仅限于严格的容器内。在严格的容器之外,向后兼容性要求let被视为标识符,而不是关键字。