堆内存(stack),JS引擎对于复杂数据类型内存的分配,会在堆内存中 开辟一块空间,并且将这块空间的指针返回值 给变量引用;
栈内存(Heap),JS引擎对于原始数据类型内存的分配,会在执行时, 直接在栈空间进行分配
GO(global object) 全局对象VO(variable object) 变量对象AO(activation object) 活动对象ECS(excution Contexts) 执行上下文栈结构,成为执行栈,顶部是正在执行的执行上下文js引擎在执任何代码之前, 会初始化一个全局对象 GO
代码解析过程,会把全局声明的变量,放到GO中,作为它的一个属性,此时值为undefined,如果遇到全局的函数声明,会立即创建函数对象====函数可以先调用,后声明 。这里就是变量作用域提升
浏览器 会对作用域链优化
函数中return后面的代码真的可以安全删除吗?
一些名称会有改变,使用const let关键词,消除了作用域提升
词法环境: 是一种规范类型,用于在词法嵌套结构中定义关联的变量、函数等标识符
全局的Environment Record是一个合成的对象,包含

Declarative Environment
Global Environment
