Javascript内存问题和删除未使用的变量
假设我有一个代码,像许多其他代码一样,使用了许多变量和赋值。如果在脚本末尾我将所有未使用的变量设置为null,这是否有助于提高内存和性能 例如,以下代码:Javascript内存问题和删除未使用的变量,javascript,Javascript,假设我有一个代码,像许多其他代码一样,使用了许多变量和赋值。如果在脚本末尾我将所有未使用的变量设置为null,这是否有助于提高内存和性能 例如,以下代码: function DoSomething () { /**** do something ...... */ if(emailValidator.test(allEmails) == 1) // #id.class.class.class { var email_
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我不确定这行是否会被执行,因为您已经完成了返回。这些变量被使用。