在javascript ECMAScript6中声明变量"let"

kus*_*men 4 javascript ecmascript-6

当我无法声明const或var时,为什么可以声明变量named let.我知道我永远不会这样做,但如果有合理的解释,我只是好奇.所以我可以这样做:

var let = 5;
let x = 3;
x + let -> 8
Run Code Online (Sandbox Code Playgroud)

为什么这甚至可能?

Rat*_*ica 5

Mozilla开发者网络网站Future reserved keywords:

只有在严格模式代码中找到以下内容时才会保留以下内容:

其中包括let.

但是,const并且var列在下面Reserved keywords as of ECMAScript 6,本文档显示了它们最初在ECMAScript 1中保留的历史记录.

严格的模式

要为整个脚本调用严格模式,请在任何其他语句之前放置确切的语句"use strict";(或'use strict';).

什么是严格模式?

ECMAScript 5的严格模式是一种选择加入受限制的JavaScript变体的方法.严格模式不仅仅是一个子集:它故意与普通代码具有不同的语义.不支持严格模式的浏览器将运行严格模式代码,其行为与浏览器的行为不同