一、在ES6之前javascript只有var关键字声明变量,ES6之后,声明方式有var,let,const,……
下面讲解讨论var,let,const的区别:
var | let | const |
声明变量 | 声明变量 | 声明常量 |
存在变量提升 | 不存在变量提升 | 不存在变量提升 |
全局作用域 | 块级作用域 | 块级作用域 |
无暂时性死区 | 暂时性死区 | 暂时性死区 |
可以重复声明 | 不可重复声明 | 不可重复声明 |
会挂在window对象下面 | 不会挂在window对象下面 | 不会挂在window对象下面 |
声明之后必须马上赋值, 否则报错 | ||
声明的简单类型不可更改, 复杂类型内部数据可以更改 |
*变量就是赋值后可以改变它的值,常量就是赋值后就不能改变它的值
*花括号{}
就是块级作用域,函数作用域就是函数里面的内容