1.let声明的变量是块级作用域(所在花括号里),var是函数作用域和全局作用域
注意:let是可以定义全局变量,局部变量,块级作用域的变量。
2.let
声明的变量只在其声明的块或子块中可用,这一点,与var
相似。二者之间最主要的区别在于var
声明的变量的作用域是整个封闭函数。
3.通过var关键字声明的变量没有块作用域,在块{ }内声明的变量可以从块之外进行访问。
通过let关键字声明的变量拥有块作用域,在块{ }内声明的变量无法从块外访问
{
var x = 10;
}
// 此处可以使用 x{
let x = 10;
}
// 此处不可以使用 x
4.通过var关键字在循环中使用会重新声明循环之外的变量,覆盖循环之外的变量,会保存循环内对变量的改变
通过let关键字在循环中使用不会重新声明循环之外的变量,会重新声明一个有块作用域的变量,并且不会保存循环内对变量的改变