javaScript 优化
个人记录,方便以后查阅,不喜勿喷
1.避免全局变量,查找全局比查找当前域慢
2.使用const常量
3.多次引用数组或对象中的某个元素时,应使用变量或常量保存该值
4.js引入不应该放在头部(会影响dom树渲染)
5.for循环遍历时,把数组的长度条件用const保存起来
6.避免直接与null比较(由于JavaScript是弱类型的,所以它不会做任何的自动类型检查,所以如果看到与null进行比较的代码)如果值应为一个引用类型,使用instanceof操作符检查其构造函数,如果值应为一个基本类型,作用typeof检查其类型
7.在循环引用中包含dom或者ActiveX,那么就会发生内存泄漏(置空dom,构造新的上下文)
8.尽量使用原生方法
9.switch和if的判断条件过多时应该用switch
10.使用赋值运算来连接字符串
11.避免使用eval()方法
12.使用事件委托,给共同的父元素添加事件,而不是给每一个子元素添加事件
13.尽量减少DOM操作
14.减少页面重绘,以下会造成重绘:
增加或删除DOM节点
改变元素的位置
改变元素的尺寸(如margin,padding,border,font,width,height等)
调整浏览器窗口的尺寸
增加或删除css
改变内容(如用户输入表单)
命中css选择器(如hover)
更改了class属性
利用脚本更改了DOM
检索一个必须被计算的尺寸(如offsetWidth,offsetHeight)
设置了一个css属性
15.不要使用 with()
16.不要给setTimeout或者setInterval传递字符串参数
17.释放javascript对象:
对象:obj = null
对象属性:delete obj.myproperty
数组item:使用数组的splice方法释放数组中不用的item
18.位运算较快(当进行数字运算时,位运算操作要比任何布尔运算或者算数运算快)
19.巧用||和&&布尔运算符
20.每条语句末尾须加分号