变量声明
var声明变量变量提升 let不存在变量提升
作用域规则
var可以重复声明变量 let不可以重复声明变量
变量获取怪异之处
for (var i = 0; i < 10; i++) {
setTimeout(function() { console.log(i); }, i);
}
let声明变量一个形成块级作用域 var声明变量不生成块级作用域
块级作用域
let声明函数里面也是不能访问的
不能先访问 在声明
重定义和屏蔽
let只能声明一次
在一个嵌套作用域中声明名字叫做屏蔽
const声明
只能声明常量 不能声明引用数据类型