浏览器打开一个页面,首先会从计算机的虚拟内存中分配两块内存:

    • 栈内存 Stack「ECStack」
      • 供代码执行
      • 存储声明的变量和原始值类型的值
    • 堆内存 Heap
      • 存储对象类型的值

    在栈内存中创建一个全局的执行上下文EC(G)

    • 供全局代码执行的环境
    • 进栈执行

    代码执行过程中,可能会声明变量,所以需要一个存放变量的地址:变量对象VO/AO
    默认在堆内存中开辟一个空间「16进制地址」GO(Global Object)全局对象
    堆栈内存 - 图1
    在全局上下文中,会默认创建一个变量:window,让其指向GO的地址

    • 所以可以基于window.xxx去访问浏览器内置的API