zoukankan      html  css  js  c++  java
  • 高性能JS笔记4——算法和流程控制

    一、循环

    for、while、do while三种循环的性能都没有多大区别。foreach 的性能较其他三种差 。

    既然循环没有多大区别,注意循环内的代码控制。

    减少迭代次数。

    减少迭代工作量。

    推荐写法:

    for(int i=0, l = array.length; i < l; i++)
    {
       int v = array[i]; 
    };

    二、条件语句

    if else 和 switch语句较少时,if else较易读。分支多时,从性能或易读上都倾向于switch。

    优化条件语句:

    最小化到达正确分支前的条件数量;

    把多个if else 组合成一个;

    把多个if else 组合成一个系列嵌套的组合;

    将查找值存放到查找表或数组,减少查找次数。

    三、递归

    使用Memoization缓存前一个计算结果供后面计算使用。

    使用Memoization重写 factorial()函数,代码如下:

    funtion memfactorial(n)
    {
        if(!memfactorial.cache)
        {
            memfactorial.cache={
                "0":1, "1":1
            };
        }
        
        if(!memfactorial.cache.hasOwnProperty(n))
        {
            memfactorial.cache[n]= n* memfactorial.cache[n-1];
        }
        
       return memfactorial.cache[n];
    }
  • 相关阅读:
    C#如何连接wifi和指定IP
    3.4 小结
    3.3.4.5 起始与清除
    3.3.4.4 打印行
    3.3.4.3 设置字段分隔字符
    3.3.4.2 字段
    3.3.4.1 模式与操作
    3.3.4 使用 awk 重新编排字段
    3.3.3 使用 join 连接字段
    3.3.2 使用 cut 选定字段
  • 原文地址:https://www.cnblogs.com/windy2008/p/5797762.html
Copyright © 2011-2022 走看看