《高性能javascript》学习笔记四

本文是《高性能javascript》学习笔记第四部分,主要探讨了算法和流程控制的优化。针对循环,分析了不同类型的循环性能,推荐在不改变逻辑的情况下使用倒序循环和局部变量缓存数据来提升性能。对于条件语句,建议根据情况选择if else或switch,并优化分支顺序。递归虽方便,但需谨慎防止无限递归。迭代作为递归的替代方案,可以通过循环避免深度调用。最后,介绍了如何通过缓存优化重复计算,如阶乘函数的优化实例。
摘要由CSDN通过智能技术生成

四、算法和流程控制

1、循环的分析

循环的类型,可以参考我之前的文章:《数组遍历的几种方法及用法》,除此之外,还有最基础的for循环,while循环,do while循环,以及遍历对象的for in 循环(for in循环遍历的顺序是按照键值对加入对象的时间从先到后遍历的,并且会遍历继承自原型的属性。建议用for of 遍历Object.keys()或者Objec)。

在这些循环/遍历的方法中,for循环、while循环、do while循环的方式,单次循环所需的时间最少,而for in遍历的方式是最慢的,因为for in循环的每次迭代都会从原型链上寻找。

虽然for循环、while循环、do while循环的性能消耗最少,但是,对于数组或者对象的遍历,通常情况下还是推荐forEach等数组/对象自带的遍历方式,因为这样代码看起来简洁很多。

在循环的迭代过程中,优化性能的第一步是减少对象成员或者数组项成员的查找次数。这可以通过之前介绍的使用局部变量缓存数据来达到。

值得一提的是,通常情况下,倒序循环会略微提升性能,所以,如果循环的顺序没有影响,可以考虑使用倒序。以这份代码为例:

博客
v8worker
05-08 2890
05-06 2869
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值