美文网首页
提高JavaScript程序性能的方法

提高JavaScript程序性能的方法

作者: sdcV | 来源:发表于2017-07-13 15:50 被阅读20次
  1. 编写带有记忆功能的函数
    //函数memoize()需要传人一个函数作为输入参数,返回相同的函数但增加了储存功能
    function memoize(fn){
    return function(){
    var propertyName;
    fn.storage = fn.storage || {};//如果这个函数还没有记忆的对象属性,就添加一个
    propertyName = Array.prototype.join.call(arguments, "|");//为了保证属性名唯一性,基于参数组合命名
    if(propertyName in fn.storage){ //判断该键是否在记忆对象中
    return fn.storage[propertyName];//有就直接取出,避免再次执行函数
    }else{
    return fn.storage[propertyName] = fn.apply(this, arguments);//不存在,就把函数执行结果保存在记忆对象
    }
    }
    };
    //test函数
    function getFactorial(num){
    var result = 1,
    index = 1;
    for(; index <= num; index++){
    result *= index;
    }
    return result;
    }
    var getFactorialMemoized = memoize(getFactorial);
    alert(getFactorialMemoized(50));//执行整个函数
    alert(getFactorialMemoized(50));//返回保存的值,避免了执行整个函数,增强了性能。
    2 . 使用for的小技巧
    var myArray = [10,30,24,2,45,67];
    for (var index = 0,length = myArray.length; index < length; index++){
    //只计算一次的得出myArray.length的值,并保存在一个变量之中,在每一次迭代中,可直接取变量值,无需重新计算
    }

相关文章

  • 提高JavaScript程序性能的方法

    编写带有记忆功能的函数//函数memoize()需要传人一个函数作为输入参数,返回相同的函数但增加了储存功能fun...

  • 如何提高C++程序性能

    如何提高程序性能 本文主要探讨提高程序性能的途径、方法和最佳实践。 总体方向 尽可能利用缓存 尽可能利用多核 还有...

  • 前端学习

    书:《高性能HTML5》、《CSS SECRETS》、《JavaScript高级程序设计》、《JavaScript...

  • android多线程

    多线程可以提高程序并发执行性能,创建线程有继承Thread重写run方法和实现runnable接口重写run方法,...

  • pureComponent

    PureComponent是优化react应用程序最重要的方法,可以减少不必要的render次数,提高性能。 原理...

  • javaScript性能优化之代码优化

    利用函数的惰性载入提高 javaScript 代码性能 在 javaScript 代码中,因为各浏览器之间的行为的...

  • javascript 数组性能提高

    C、C++...中的数组形式WX20180314-104644@2x.png

  • javascript 代码性能提高

    js对象的hasOwnProperty为什么比数组的indexof方法在性能上高的多? 把常用的代码封装成为一个函...

  • 如何提高javascript性能

    一、总原则 减少操作:js引擎,业务代码 本文主要从变量访问和算法逻辑讨论 二、变量访问 数据类型数据存放的位置不...

  • 提高java程序性能的小方法

    1、避免使用错误的方式,尽量不用instanceof做条件判断,不要将数组声明为:public static fi...

网友评论

      本文标题:提高JavaScript程序性能的方法

      本文链接:https://www.haomeiwen.com/subject/pywwhxtx.html