var、let、const区别
- var在es6之前提出,作为变量声明的关键字
- let、const在es6提出
重复声明
- var可以重复声明同一变量
- let、const不能重复声明同一变量
初始值
- var、let可以不赋初始值
- const必须赋初始值(保存常量)
是否能修改值
- var、let可以修改值
- const不能修改基本数据类型(保存常量)
变量提升
- var:有变量提升,并且会初始化变量赋值为undefined
- let、const:有变量提升,但是没有初始化变量,只有在创建变量时才会初始化变量
作用域
- 概念:变量的使用范围
- 分类:全局作用域、局部作用域、块级作用域
- var:局部作用域(通过函数区分)
- let、const:块级作用域(通过js代码块区分,使用{}包裹的一个区域即为块级作用域)