想对前端js方面的优化做一下整理
一、加载和执行
- JavaScript是单线程,所以JavaScript的加载和执行都从上往下执行完一个继续加载执行下一个文件,会阻塞页面的资源,所以我们一般将js文件放在body标签内部的底部。
- 为script标签添加defer属性,defer 属性规定是否对脚本执行进行延迟,直到页面加载为止。如果您的脚本不会改变文档的内容,可将 defer 属性加入到
二、数据存取
- 局部变量是最快的,obj.name比obj.xxx.name访问更快,访问属性的速度,与其在对象中的深度有关。
- 尽量避免使用闭包
调用函数a,当函数结束时,执行环境销毁,活动对象李颖也被销毁,但是因为闭包的引入,导致这个活动对象一直处于激活状态,就无法销毁,这就需要更多的内存空间,容易导致内存泄漏
function a(){
var name='div';
return function(){
return name;
}
}
- 缓存频繁使用的对象、数组及相关的属性值
function add(arr){
var length=arr.length
var num=0
for(var i=0;i<count;i++){
num+=arr[i]
}
}