var :
- 函数里是局部变量,不在函数里是全局变量
- 变量提升
console.log(a) // undefined
var a = 20
编译器会把他变成
var a
console.log(a)
a = 20
- 多次声明,后面会覆盖前面的
let
- 只在代码块里有效,如果提前使用会报错
- 不存在变量提升
- 不能重复声明
const
- 声明一个只读的常量,一旦声明,常量的值就不能改变
- const一旦声明变量,就必须立即初始化,不能留到以后赋值
- 简单类型不能变,复杂类型存的是地址,可以通过地址改值
网友评论