var
:变量提升,定义的变量都会被提升到该作用域的最顶部,变量也可以在声明之前使用
let
:块级作用域,不能重复定义const
:块级作用域,不能重复定义,定义常量不能被修改;虽然const变量不能修改指针,但是可以修改值,比如我们定义一个对象,我们就可以修改对象里的属性值,但是不可以重写整个对象。
const person = {
name: "蛙人",
age: 23
}
person.age = 18 // 没问题
person = {} // 报错 不能修改对象指针
具体例子分析:
1)例子1
变量a挂载到Window上了:
Window上无变量a
2)例子2
∵ 先执行同步代码i++,再执行异步代码
a.
b.