2017-10-15 3 views
-3

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

ノッチだけを見て、「letとstaticは静的意味制限(12.1.1,13.3.1.1,13.7.5.1、および14.5.1を参照)によって予約語として扱われます語彙文法よりも。 – BoltClock

+0

'let'のステータスを説明しているメモがあります – pvg

答えて

4

letは、 ES6ES5 strict mode前に予約されていなかった。

var let = 5; 

あなたは」新しいコンストラクト(例えば、let let = 5;は無効です)のための仕様でそれに対して多くの例外が見つかります。

+0

キーワードプロダクションにそれを含めない理由を説明してくれてありがとう –

1

あなたはreferenced documentでノートを見ることができます:いくつかの状況で

は、識別子の意味を与えられて得して待っています。 12.1.1を参照してください。厳密なモードコードでは、とstaticは、字句文法ではなく静的意味制限(12.1.1,13.3.1.1,13.7.5.1、および14.5.1を参照)によって予約語として扱われます。それは、このような後方互換性の理由から、予約語の残りの部分と同じように扱わすることはできませんので

関連する問題