Javascript内存问题和删除未使用的变量

Javascript内存问题和删除未使用的变量,javascript,Javascript,假设我有一个代码,像许多其他代码一样,使用了许多变量和赋值。如果在脚本末尾我将所有未使用的变量设置为null,这是否有助于提高内存和性能 例如,以下代码: function DoSomething () { /**** do something ...... */ if(emailValidator.test(allEmails) == 1) // #id.class.class.class { var email_

假设我有一个代码,像许多其他代码一样,使用了许多变量和赋值。如果在脚本末尾我将所有未使用的变量设置为null,这是否有助于提高内存和性能

例如,以下代码:

function DoSomething ()
{
/**** do something ...... */
            if(emailValidator.test(allEmails) == 1) // #id.class.class.class
            {
                var email_parts = [];
                var i = 0;
                var tmp;
                while(tmp = emailValidator.exec(allEmails))
                {
                    email_parts[i] = tmp;
                    i++;
                }
                var wrapped_emails= "";
                for(w=0; w < emails_parts.length; w++)
                {
                    this_class = emails_parts[w][1];
                    emails_classes += " " + this_email.replace(/^\./, "") + " ";
                }
                emails_classes = emails_classes.trim();

                return emails_classes;

                tmp=null; email_parts = null; i = 0; // DOES THIS LINE HELPS THE MEMORY AND PERFORMANCE??????
            }

/** the rest ...... */
}// end of the function
如果您看到,在接近条件末尾时,我已将所有变量设置为null,但要返回的变量除外

现在,我的问题是,将变量排除为null是否有助于内存和执行性能?

将变量设置为null只会导致它们具有null值

JavaScript有一个垃圾收集器,这意味着它将释放不再被引用的变量,这些变量可能是您想要读取的

在您的例子中,尽管您在if块中声明了tmp和email_部分,但它们实际上将在DoSomething函数执行结束时被释放,因为这些声明被移动到范围的顶部,请参见

此外,正如@Andy所述,tmp=null;email_parts=null;i=0;没有任何效果,因为你把返回邮件放在了U类中;就在它上面。

不,它没有 作为一名程序员,你不应该考虑像这样的微调整。让编译器/垃圾收集器来处理这个问题

作为一名程序员,我们的主要关注点应该是“易于理解”的代码“做它应该做的”


完成代码编写之后。如果性能有问题,您可以查看一下。如果是这样,test,test,test,test,test

我不确定这行是否会被执行,因为您已经完成了返回。这些变量被使用。