为什么`let`没有被指定为规范中的保留关键字

问题描述:

我期待找到constlet作为保留关键字。 I've found onlyconst,但没有let为什么`let`没有被指定为规范中的保留关键字

Keyword:: 
    await 
    break 
    case catch class const continue <---- `const` here 
    debugger default delete do 
    else export extends 
    finally for function 
    if import in instanceof 
    new 
    return 
    superswitch 
    this throw try typeof 
    var void 
    while with 
    yield 

let关键字?如果不是,为什么?

+1

往下看,只是一个缺口,你会发现一张纸条,上面写着“让我们和静态被视为通过静态语义限制保留字(参见12.1.1,13.3.1.1,13.7.5.1和14.5.1),而比词法“。 – BoltClock

+0

有一个音符在那里解释的'状态let' – pvg

let ES6ES5 strict mode没有保留,所以它不能被同等对待的保留字,其余为向后兼容的原因是这样的:

var let = 5; 

你”会发现很多在规范新的结构异常为它的(如let let = 5;无效)。

+0

感谢您抽出时间来解释不包括到关键字生产的原因 –

你可以看到在referenced document注:

在某些情况下产生伺机给出一个标识符的语义。参见12.1.1。在严格模式代码,和静态被视为通过静态语义限制保留字(见12.1.1,13.3.1.1,13.7.5.1,和14.5.1),而不是词法文法。