• JS性能优化 个人总结


    1.避免全局变量查找,局部变量比全局变量快很多

    2.用定时器的时候尽量使用setInterval    因为setTimeout每一次都会初始化一个定时器,而setInterval只会在开始的时候初始化一个定时器。

    3.如果要连接多个字符串,应该少使用+=,如:

    x+=a; x+=b; x+=c; 应该写成 x+= a + b + c; 而如果是收集字符串,比如多次对同一个字符串进行+=操作的话,最好使用一个缓存,使用JavaScript数组来收集,最后使用join方法连接起来。


    4
    数字转换成字符串,一般最好用"" + 1来将数字转换成字符串,效率最高,性能上来说:("" +) > String() > .toString() > new String()
    5.各种类型转换 
    如果定义了toString()方法来进行类型转换的话,推荐显式调用toString(),因为内部的操作在尝试所有可能性之后,会尝试对象的toString()方法尝试能否转化为String,所以直接调用这个方法效率会更高
    6.定义变量组合成一个语句,这样就是组合在一起的语句,以减少整个脚本的执行时间
    7.使用DocumentFragment来优化多次append
    一旦需要更新dom,请考虑使用文档碎片来构建dom结构,然后再添加到现存文档中

    8使用firstChild 和nextSibling代替childNodes遍历dom 元素

     

    9在删除dom节点的时候,一定要先删除dom节点上的事件,否则会产生无法回收的内存。另外 在removeChild和innerHtml=‘’ 之间尽量使用后者,因为用removeChild无法有效的释放dom节点

    10 事件代理尽量加到父节点处理,避免增加多个事件监听
    11.优化循环 ,先将循环控制量存放到变量中,如下图;另外  循环在很多情况下 减值迭代才更加高效,即循环从i最大 降低至0。

    在JavaScript中,我们可以使用for(;;),while(),for(in)三种循环,事实上,这三种循环中for(in)的效率极差,因为他需要查询散列键,只要可以,就应该尽量少用。for(;;)和while循环,while循环的效率要优于for(;;)

     

  • 相关阅读:
    avalon如何用年月日的方式输出..
    做一个倒计时的功能,天,时,分 /时,分,秒
    avalon用background-image不起作用,怎么来选取前几个的图片进行渲染
    获取地址栏的参数的两种方法?
    mac屏幕录制
    数据可视化
    vscode 插件
    git 命令 总结
    jest
    react admin
  • 原文地址:https://www.cnblogs.com/xiaoyaoweb/p/10894930.html
Copyright © 2020-2023  润新知