一、是否存在变量提升?
变量提升:变量可以在申明之前使用。
var声明的变量存在变量提升,全局作用域下是 window 属性
let 和 const 声明的变量没有变量提升。
二、能否重复声明?
var 能重复声明。
let 和 const 不能重复声明。
三、变量值能否修改?
var 和 let 声明的值可以修改。
const 声明的值是常量,不能修改。如果申明的是引用类型,可以修改其属性。
四、是否存在块级作用域?
块级作用域:申明的变量只在该块级作用域内有效。
var 没有块级作用域
let 和 const 有块级作用域
五、是否存在暂时性死区?
暂时性死区:只要块级作用域有 let或者 const 命令,他们所申明的变量就绑定这个区域,不受外部影响。
var 不存在暂时性死区
let 和 const存在暂时性死区