文章序
所谓代码优化,需要关注代码两个方面,即时间复杂度和空间复杂度,在不影响功能和程序运行结果的前提下,尽量减少程序的内存占用,提高程序的运行速度,基于jsbench.me该网站可以给出两段代码大量调用所耗时间,可以更明显直观的看出两段代码哪个运行时间更短,本文以Javascript语言为例,进行代码优化
慎用全局变量
全局变量定义在全局执行上下文,是所有作用域链的顶端
全局执行上下文一直存在于上下文执行栈,直到程序退出
如果某个局部作用域出现了同名变量则会遮蔽或污染全局
![](https://img.haomeiwen.com/i24355523/149db9dd1077655e.jpg)
缓存全局变量
在局部作用域内定义一个变量指向全局变量
![](https://img.haomeiwen.com/i24355523/12e26f0f70b488e4.jpg)
通过原型对象添加方法
![](https://img.haomeiwen.com/i24355523/c166d3375d191acf.jpg)
避免属性方法使用
![](https://img.haomeiwen.com/i24355523/b99cc21595788bfc.jpg)
选择最优的循环方法
![](https://img.haomeiwen.com/i24355523/f0c9bdd75043eb54.jpg)
![](https://img.haomeiwen.com/i24355523/1225db29b3df4a31.jpg)
避免闭包
闭包会造成内存泄漏,导致变量占用内存无法释放
function foo() {
var el = document.getElementById('btn')
el.onclick = function() {
console.log(el.id)
}
el = null // 令el = null
}
算法优化
同样的问题使用不同的方法会导致运行时间不同,典型的比如查找某个东西可以使用二分查找使时间复杂度降低到O(logn),等等
总结
代码优化的方法不止一种,本文只是列举了一些常见的优化方法, 欢迎留言补充!
网友评论