核心内容摘要
美胸-年美-造相Z-Turbo:图片生成效果实测与案例分享
执行上下文当 JS 引擎执行代码前它会扫描所有的代码并不是执行代码(
第一次扫描创建快照预解析建立环境记录类似分类扫描所有function关键字把整个函数体存进去函数提升。
扫描所有var声明给它们分配内存并初始化为undefined变量提升。
识别let和const虽然也记录了它们但标记为“不可访问”暂时性死区。
面试
总结所谓的暂时性死区 (TDZ) 和变量提升其实在js引擎第一次扫描代码的时候就已经决定了。
变量类型分类时的动作 (Creation Phase)内存状态访问结果var创建并初始化已经分配了内存并填入了undefined作为默认值。
可以访问返回undefined。
let/const仅创建注册内存地址已被预留但引擎严禁对其进行任何形式的访问甚至不给undefined。
报错ReferenceError。