首先我们知道 var let const 三者都是JavaScript中声明变量的方式 但是这三个声明的变量都存在不同之处.
首先我们要知道JavaScript存在三种作用域 全局作用域 函数作用域 块级作用域
其中块级作用域是由let/const搭配{ }实现的,var声明的变量不存在块级作用域
var声明的变量:存在全局作用域,函数作用域,不存在块级作用域,可以重复声明,可以重新赋值
let声明的变量:只存在函数作用域和块级作用域,不允许重复声明同一个变量
const声明的是常量,声明时必须赋值,只存在函数作用域和块级作用域,不允许重新赋值.
三者都存在声明提升,但是let和const存在 暂存死区 状态不可用 因此导致很多人认为他们不存在声明提升