今天跟群里的人聊到JS性能的问题,网上总结的也蛮多的,这里我就大概写写:
1、循环
循环是我们最常用到的语句之一,其中for in 这个东西严重影响js效率。for in会让js脚本引擎建立一张可枚举的属性列表,然后一一对比是否重复。所以尽量避免使用
2、eval 和 Function
eval和Function构造函数,每次都会把源代码转化为可执行代码。这个代价,啧啧啧
3、避免使用全局变量
全局变量其实去全局对象的成员,而局部变量其实是放到函数的堆砌中的
4、减少对象的查找
"."操作符直接影响访问对象属性的耗时,
如 a.b.c.d。应尽量避免出现这样的表达式、可以利用局部变量把要访问的最终结果放入一个临时的位置进行查询。
5、字符串连接
避免使用 str+=a;str+=b;str+=c;可以写成str+=a+b+c;
如果是遍历生成字符串
可以使用数组储存字符串然后统一插入到元素中
6、缓存经常使用的数组、对象及其相关属性
7、reflow
引起的原因:
*操作dom树
*与布局有关的样式改变
*改变classname
*窗口大小的调整
*字体大小