Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
避免单个变量会提高JavaScript性能吗?_Javascript_Performance - Fatal编程技术网

避免单个变量会提高JavaScript性能吗?

避免单个变量会提高JavaScript性能吗?,javascript,performance,Javascript,Performance,在JavaScript中,避免不必要的变量是很常见的,因为它减少了JS代码的大小,尽管定义单个变量的可读性更好。举个简单的例子 var e=document.getElementById('text'); var text=e.innerHTML; var d=document.getElementById('test'); d.innerHTML=text; 这可以归结为 document.getElementById('test').innerHTML=document.getElemen

JavaScript
中,避免不必要的变量是很常见的,因为它减少了
JS
代码的大小,尽管定义单个变量的可读性更好。举个简单的例子

var e=document.getElementById('text');
var text=e.innerHTML;
var d=document.getElementById('test');
d.innerHTML=text;
这可以归结为

document.getElementById('test').innerHTML=document.getElementById('text').innerHTML;
我想知道从性能的角度来看,这是否有任何好处。避免过多变量是否会减少内存使用并提高处理速度


这是一个严重的问题吗?始终建议通过避免单个变量来最小化
JS
代码?

两者之间没有实际区别。大多数Javascript解释器可能会为这两者生成等效的内部表示,并且在本例中使用的函数和属性的开销(特别是分配给
innerHTML
!)远远大于您可能看到的任何差异。

这是一个严重的问题吗?不需要。如果你只是因为“性能”而这样做,你就是在进行微观优化。在你给出的例子中,真的没有太多必要这样做——后者是完全可读的。尽管如此,还是要做可读性最好的事情,除非它涉及到每秒调用数百次的核心函数。在这种情况下,首先寻找最大的收益——它可能不会出现在这里。我唯一担心的是,变量可能会在不经意间被长期的闭包捕获(造成泄漏),这取决于JavaScript解释器的性能。