关于JavaScript的内存和更多信息

时间:2011-07-09 22:05:04

标签: javascript memory-management portability reliability

  1. 内存如何在JavaScript中运行?有堆栈吗?一堆?内存管理如何运作?

  2. varriable与其在内存中的位置之间的绑定何时发生?在运行时之前或期间?

  3. JavaScript中是否有模块或类似内容?

  4. 另外,你会说JS是便携式的吗?可靠吗?请简要解释一下你的答案。

  5. 我在互联网上寻找答案,但我似乎没有找到任何答案。快速回答也很受欢迎。

2 个答案:

答案 0 :(得分:3)

在javascript中为你管理内存,所以你不必担心它,除了确保你不要使用荒谬的数量。当没有对象留下任何引用或者它已经超出范围时,它将被垃圾收集器释放。如何在幕后工作实际上取决于实现,而不是由语言定义。

甚至函数框架(例如局部变量)以这种方式工作(而不是传统的面向堆栈的方式),它允许javascript“闭包”,这些函数框架在没有嵌入式函数再次引用它们之前不会被释放。< / p>

Javascript代码本身完全独立于机器,因此它非常便携。实际上,应用程序的可移植性通常取决于javascript与语言交互的库(例如浏览器DOM)。它由一系列ECMA规范记录,并且该规范有不同的版本号,它们定义了语言发展过程中的各种新功能。

我认为javascript非常可靠,只要你不尝试使用最近推出的不同实现中没有的功能,就很少有真正的javascript问题。有大量的跨浏览器兼容性问题,但这些问题几乎都不在语言本身,而是在浏览器DOM或语言与DOM之间的交互。

我不确定“moduls”是什么意思。

Javascript是一种解释型语言,因此变量与它在内存中的位置之间没有固定的绑定。所有变量都由它们的名称引用,由实现决定如何最好地解析名称和存储该值的特定内存之间的连接。

答案 1 :(得分:1)

一个。只有堆。 Javascript使用自动垃圾收集。我可以假设您有使用C / C ++的经验吗?在JS中,成功的秘诀几乎就是:“忘记所有关于内存管理的事情,你会没事的。”

B中。绑定发生在运行时。记住Javascript不是一种编译语言,所以没有编译时,只有运行时。

℃。像所有c风格的语言一样,Javascript使用%作为模数运算符,因为快速谷歌搜索会显示。

d。它非常便携,因为它在浏览器上运行,而不是直接在系统上运行。几乎任何运行Firefox或Chrome的系统都会运行Javascript,即MS Windows,Linux,Mac,BSD,任何现代系统。

d”。有几种Javascript实现。问“Javascript可靠吗?”就像问:“汽车可靠吗?”有许多不同的汽车,或多或少可靠;对于Javascript也一样。