- 通过
var
关键词声明的变量没有块作用域。
在块 {} 内声明的变量可以从块之外进行访问。
{
var x = 10;
}
// 此处可以使用 x
-
let
关键词声明拥有块作用域的变量。在块 {} 内声明的变量无法从块外访问:
{
let x = 10;
}
// 此处不可以使用 x
-
在 HTML 中,全局作用域是 window 对象。
通过
var
关键词定义的全局变量属于 window 对象:var x=0; console.log(window.x); //0
-
通过
let
关键词定义的全局变量不属于 window 对象:let carName = "porsche"; // 此处的代码不可使用 window.carName
- 在相同的作用域,或在相同的块中,通过
let
重新声明一个var
变量是不允许的:
var x = 10; // 允许
let x = 6;