高性能JS笔记4——算法和流程控制

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高性能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];
}

 

以上是关于高性能JS笔记4——算法和流程控制的主要内容,如果未能解决你的问题,请参考以下文章

高性能javascript学习笔记系列 -算法和流程控制

《高性能Javascript》读书笔记-4

算法和流程控制 --《高性能JavaScript》

JS学习笔记运算符和流程控制语句

[读书笔记]Java编程思想第4章之控制执行流程

《Java编程思想》阅读笔记之第4章-控制执行流程