暂存性死区是相对于某一个变量来说的,就是在定义该变量之前的区域就是暂存性死区
const i = 1 { //死区开始 console.log(i) //死区里边拿不到外边的i,也拿不到本代码块内的i //死区结束 const i = 2 console.log(i) //直到这里才能正常使用 i }错误类型如图:
出现本错误的原因就是由于暂存性死区:
只要我在本代码块内声明了 i,那就只能使用本代码块内声明的 i,哪怕在我定义之前使用了i也不能使用外边的i(霸道)let、const不存在变量提升(这也就导致程序会报错,而不输出undefined)