高性能Javascript第四章算法和流程控制

笔记:

  1. for-in 可以枚举任何对象的属性名。循环体每次运行,prop变量被赋值为object的一个属性名,直到所有的属性遍历完成才返回。
  2. 循环的可选因素:每次迭代处理的事务,迭代的次数。
  3. 减少迭代的次数-达夫设备
  4. if-else适用于判断两个离散值或几个不同的值域。当判断多于两个离散值时,switch是更佳的选择。
  5. 递归,可能会遇到调用栈的大小限制。
  6. 递归有直接递归,隐式递归。
  7. 迭代-缓存之前的。

小结:

  1. for,while,do-while,循环性能相当,没有一种循环明显快于或者慢于其他类型。
  2. 避免使用for-in,除非要遍历一个属性数量未知的对象。
  3. 改善性能:减少每次迭代的运算量和减少循环迭代次数。
  4. 判断条件多,用查找表比if-else,switch更快。
  5. 浏览器调用栈递归算法,栈溢出可能会导致其他代码出错。
  6. 栈溢出,可以用迭代或者memoization来避免。

猜你喜欢

转载自blog.csdn.net/qq_37021554/article/details/87989350