1、語言特性: 內存泄露:內存沒有釋放,越堆越多。 垃圾回收(生命週期): 1、局部 很短 在局部中當函數完成時。已經釋放了。全局變量在頁面關閉的時候才被回收。 2、全局 很長 3、閉包。可長可短,只要這個變量還有用,函數中的局部變量就不會消失。 只要這個變量還有用,函數中全部的局部變量就不會消失。 只要這個變量還有用,整個做用域鏈上的全部局部變量鬥不會消失。 function show(){ var a=1; var b=1; document.onclick=function(){ alert(a); } } a,b,在show調用後,都不會消失。 b,不消失的緣由: 1、穩定 2、速度 做用域鏈:在子級找這個東西,若是沒有找父級。直到找到全局。從底層找到最高層。 遞歸:把比較大的事情,分散爲比較小的事情。【斐鉑那鍥發明的】 效率很是高,可是重複的太多,影響性能。 解決方法:聲明數組,將有的東西存起來。 性能優化: 【1、網絡性能 f12 network yslow,學習工具。 減小Http請求。(文件合併) 代碼壓縮。 圖片懶加載。 2、執行性能】 1、穩定性 2、擴展性 3、性能。 注意: 1、儘可能不要用全局變量 2、儘可能不要用屬性,用變量,屬性比較慢 3、循環。 4、儘可能用正則 5、儘可能用系統自帶的。 6、儘可能減小dom操做。【指的是運動】,看不到的地方停掉。 7、儘可能不要用圖片,儘可能不要縮放 8、背景圖平鋪,儘可能用大一點的圖片。 可選項: 正則更快。 字符串操做比數組快。 <script>標籤儘可能放倒body的最下面。由於它能夠阻塞加載。 css必定要放到上面。