Var let const 的区别
-
变量提升
var 存在变量提升 变量可以在声明之前调用 但是值为undefined。
let ,const 不存在变量提升。他们声明的变量必须在声明后调用 如果在之前调用就会报错 -
暂时性死区
let 和 const 存在暂时性死区。只要块级作用域内存在let 命令它所声明的变量就绑定在这个区域 不受外界影响 let声明变量之前该变量是不以使用的 在语法上成为“暂时性死区” -
重复声明变量
var 允许重复声明变量
let const 在同一作用域是不允许重复声明变量的 -
块级作用域
var 不存在块级作用域 let const 存在块级作用域
块级作用域是es6新增的 块级作用域由{}包裹 if fior语句里的{}也属于块级作用域 -
修改声明的变量
var和let 可以修改声明变量
const 声明的是一个常量 一旦声明常量的值就不能改变