我是一名JavaScript新手。我习惯于Java,因此我试图以极其不正确的方式映射两个世界。
问题:
答案 0 :(得分:4)
Java和ECMAScript 不是相同的语言,并且过去的一般性,具有不同的执行模型。虽然JLS (Java Language Specification)在技术上非常精确,但“{3}}仅关注行为。
ECMAScript的一致实现必须提供并支持本规范中描述的所有类型,值,对象,属性,函数以及程序语法和语义(行为)。
ECMAScript由ECMAScript specification执行。通常每个浏览器窗口有一个“环境”;也就是说,每个window
对象是最多一个并发"JavaScript Engine"的全局上下文。这实际上意味着每个浏览器窗口“都是一个单独的VM”。
每个可变对象都是可变的,只要它被强烈引用,每个对象都是可达的(因此保证是活着的)。 实现当然使用“堆”内存和“引用”,因为它是一个实用/必需的设计选择;但是在规范中都没有讨论“堆”或“引用”(在这个意义上)的使用。
规范讨论了由Program execution组成的堆栈,它由逻辑链组成。
当控制转移到ECMAScript可执行代码时,控制进入执行上下文。活动执行上下文在逻辑上形成堆栈..