为什么`let`没有被指定为规范中的保留关键字
问题描述:
我期待找到const
和let
作为保留关键字。 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
关键字?如果不是,为什么?
答
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),而不是词法文法。
往下看,只是一个缺口,你会发现一张纸条,上面写着“让我们和静态被视为通过静态语义限制保留字(参见12.1.1,13.3.1.1,13.7.5.1和14.5.1),而比词法“。 – BoltClock
有一个音符在那里解释的'状态let' – pvg