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