1、是否存在变量提升?
var 存在变量提升,在变量声明前调用值为undefined
let、const不存在变量提升,如果在声明前调用,将报错
2.是否存在暂时性死区?
let、const存在暂时性死区,var不存在。
在代码块内,使用let命令声明变量前,该变量都是不可用的,这在语法上,称为“暂时性死区”
let、const声明变量,只有等到声明变量的那一行代码出现,才可以获取和使用该变量。
3.是否存在块级作用域?
- var不存在块级作用域。
- let和const存在块级作用域。
块作用域由{ }
包括,if
语句和for
语句里面的{ }
也属于块作用域。
4. 是否能修改声明的变量?
var
和let
可以。const
声明是常量。一旦声明,常量的值不能改变,这意味着,const
一旦声明变量,就必须立即初始化,不能留到以后赋值。
5.是否允许重复声明变量?
var
允许重复声明变量。let
和const
在同一作用域不允许重复声明变量。