巧用局部變量可以有效提升javascript性能,下面有個不錯的示例,大家可以參考下
javascript中一個標識符所在的位置越深,它的讀寫速度也越慢。因此,函數中讀寫局部變量總是最快的,而讀寫全局變量通常是最慢的。一個好的經驗法則是:如果某個跨作用域的值在函數中被引用一次以上,那麼就把它存儲到局部變量裡。 例如: 代碼如下: <!-- 優化前 --> <script type="text/javascript"> function initUI () { var bd = document.body, links = document.getElementByTagName("a"), i=0, len=links.length; while(i < len){ update(links[i++]); } document.getElementById("go-btn").onclick = function(){ start(); } bd.className = "active"; } </script> 該函數引用了三次document,而document是個全局對象。搜索該變量的過程必須遍歷整個作用域鏈接,直到最後在全局變量對象中找到。你可以通過以下方法減少對性能的影響:先將全局變量的引用存儲在一個局部變量中,然後使用這個局部變量代替全局變量。 例如: 代碼如下: <!-- 優化後 --> <script type="text/javascript"> function initUI () { var doc=document, bd = doc.body, links = doc.getElementByTagName("a"), i=0, len=links.length; while(i < len){ update(links[i++]); } doc.getElementById("go-btn").onclick = function(){ start(); } bd.className = "active"; } </script>