lkzwc/feddu

【2022.8.13】let var你真的清楚吗

Opened this issue · 2 comments

lkzwc commented

var

console.log(e)
var e =10

//undefined
如果没有申明a,则打印出来会是a is not defined

变量提升

系统将变量提提升到使用前进行定义

let

{
   console.log(typeof e)
   let e =10
}
// 代码报错

临时死区

常量不存在变量提升的情况,但是let和const申明的常量,会被放到临时死区,JS引擎在扫描代码变量时候,要不会把变量提升到顶部,要不就会放到临时死区

lkzwc commented

let命令声明变量之前,该变量都是不可用的。这在语法上,称为“暂时性死区”

lkzwc commented

块级作用域