0

我习惯于在顶部块的范围内声明每个变量,以提高代码的可读性。我怀疑未添加到文档正文中的函数范围内的节点会占用空间并降低性能。他们会发生什么?一般来说,在函数范围内创建的变量会发生什么?函数执行后它们会被销毁吗?我需要担心释放内存吗?在作用域的最顶部块声明变量是一种好习惯,还是只在需要它们或某些条件为真时才在现场声明它们更好?这是否有助于提高运行时性能?

假设这样的函数:

function myfunc() {
    var someNode = document.createElement('div');
    if(someCondition) { // add the node only if some condition is true
        document.body.appendChild(someNode);
    }

VS这样的功能:

function myfunc() {
    if(someCondition) { // create and add the node only if some condition is true
        var someNode = document.createElement('div');
        document.body.appendChild(someNode);
    }
}
4

1 回答 1

5

Javascript 通过垃圾收集实现自动内存管理。如果范围内没有引用数据的变量,则应回收内存。因此,在您的示例中,未使用的 DIV 将在函数退出时(或不久之后,下一次垃圾回收发生时)被销毁。

但是,最好避免制作不需要的对象。这需要时间,并且在函数运行时会耗尽内存。对于小而简单的对象(即使用文字{...}语法创建的东西)和数组来说还不错,但节点是非常复杂的对象。

于 2013-07-10T15:02:55.043 回答