var、function、let、const变量提升

var、function、let、const变量提升
最新回答
梦似曾见

2021-07-20 05:38:22

我是从这两篇文章的阅读中,做出了自己的总结,如果不明白的话可以看看这两篇文章:

变量提升情况:

变量提升概念:

js引擎在执行过程中变量的生命周期分为三个阶段: 注册、初始化、赋值

var、funciton、let、const的生命周期:

var 在注册阶段初始化是一起的,会被赋值为 undefined ,所以变量提升,打印出的是 undefined

function 在注册阶段初始化、执行都一起了,所以函数不管写在哪里都可以直接调用

let 在注册阶段和初始化是解耦的,只是创建了但是并未初始化,所以出现了暂时性死区,打印出的是 'x is not defined'

const 的生命周期与let一样,只不过没有赋值阶段