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