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必定要放到上面。