2021-07-20 05:38:22
我是从这两篇文章的阅读中,做出了自己的总结,如果不明白的话可以看看这两篇文章:
变量提升情况:
变量提升概念:
js引擎在执行过程中变量的生命周期分为三个阶段: 注册、初始化、赋值
var、funciton、let、const的生命周期:
var 在注册阶段初始化是一起的,会被赋值为 undefined ,所以变量提升,打印出的是 undefined
function 在注册阶段初始化、执行都一起了,所以函数不管写在哪里都可以直接调用
let 在注册阶段和初始化是解耦的,只是创建了但是并未初始化,所以出现了暂时性死区,打印出的是 'x is not defined'
const 的生命周期与let一样,只不过没有赋值阶段