学习JavaScript也存在一段时间,以下是个人对JavaScript中抽象的知识点记录备案,将有待于后面逐个完善......

1.JavaScript在内存中的体现(内存中栈堆与基本类型及引用类型关系

关于对JavaScript待于完善的一些知识点-LMLPHP

基本类型 存放在栈(stack)中简单的数据段,有5种基本类型包括undefined、null、string、number、boolean 按值存放可直接访问

引用类型 存放在堆(heap)内存中的对象,变量实际保存的是一个指针,该指针地址用来指向存储在堆(heap)内存中的对象

这里不再重复造轮子推荐请链接【博客园精华区】js堆栈与拷贝,文章思路清晰易懂

(标注 对JavaScript栈堆的理解直接关系到能不能真正理解js中变量类型(基本类型、引用类型)、作用域、闭包、执行上下文、单线程等相关知识点

2.JavaScript执行上下文 (代码创建完成阶段、代码执行阶段)

function fn(){
console.log(num);
console.log(fn2);
var num = 100;
function fn2(){}
}
fn();

3.变量对象(Variable Object简称VO)与 执行上下文(Execution Contexts)关系

如果变量与执行上下文相关,那么它自己应该知道它的数据存储在哪里和如何访问。这种机制被称作 变量对象(variable object).

变量对象 (缩写为VO)就是与执行上下文相关的对象(译者注:这个“对象”的意思就是指某个东西),它存储下列内容:

  • 变量 (var, VariableDeclaration);
  • 函数声明 (FunctionDeclaration, 缩写为FD);
  • 以及函数的形参

4.变量对象(Variable Object简称VO)与 激活对象(AO)关系

5.作用域链ScopeChain与执行上下文有何关系??

05-18 20:58