1:是否可以重复定义
- var可以重复定义
- let不可以重复定义
- const也不可以重复定义
这里的重复定义指的是同一上下文
2:是否可以修改值
- var可以修改值
- let可以修改值
- const不可以修改值
3:是否声明提升
- var声明会提升
- let声明不会提升
- const声明也不会提升
4:是否支持块级作用域
- var 严格来说不可以,但是function可以
- let 支持
- const 支持
5:是否支持循环定义变量
- var支持
- let支持
- const不支持
图示
let专栏
- 使用let关键字声明的变量具有块级作用域
- 在一个大括号中,使用let关键字能形成一个块级作用域,var则不行,除非var在function作用域中。
- 防止循环变量变为全局变量
- 不存在变量提升的问题
- 暂时性死区
const专栏
- const用于声明常量,常量就是值(内存地址)不能变化的量。
- 具有块级作用域。