算法和控制流程

循环

循环的类型

1 .for
2 .while
3 .do while
4 .for-in:可以枚举出任何对象的属性名,所返回的属性包括对象实例属性以及从原型链继承的而来的属性。
5 .for-of:
6 .以上几种循环类型中,只有for-in会明显比其他几种要慢。
7 .减少每次迭代的事物
8 .减少迭代的次数(达夫设备:在旧的浏览器上会有很大的作用,但是新设备上面就不行了,性能和while差不多)循环体展开技术,用一次循环实现之前几次循环的效果
9 .forEach处理数组的时候比常规的慢8倍,那就是只使用最新的和最基础的

条件语句的优化

1 .循环较少,if-else。循环较多,switch更易读。
2 .优化if-else:最小化到达正确分支所需要判断的条件数目,二分法加上哈夫曼思想
3 .查找表:当有大量的离散值需要测试的时候,使用表查找,switch代码所占的空间可能与他的重要性不成比例,整个结构可以使用一个数组作为查找表来替代。
4 .遇到栈溢出错误,可以讲方法改为迭代算法,或者使用Memoization来避免重复计算。

你可能感兴趣的:(算法和控制流程)