算法和流程控制

  • for、while和do-while循环性能相当,并没有一种循环类型明显快于或慢于其他类型;
  • 避免使用for-in循环,除非你需要遍历一个属性数量未知的对象;
  • 改善循环性能的最佳方式是减少每次迭代的运算量和减少循环迭代次数;
  • 通常来说 ,switch总是比if-else快,但并不总是最佳解决方案;
  • 在判断条件较多时,使用查找表比if-else和switch更快。比如,用对象不同属性存储操作函数,直接obj[attr]形式获取值,避免switch判断;
  • 浏览器 调用栈的大小会限制递归算法的应用,如果栈溢出,可以将递归改造为迭代算法,或者缓存保存上次计算结果来避免重复计算。缓存保存结果也类似于用对象来保存各次递归计算结果,下一次递归时,查找对象的属性,看是否已有保存,有的话就不需要重复计算。

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