看到网易云讲到写一个缓存机制,什么时候用缓存机制,当有大量重复计算的时候,计算的难度不是很简单,如果是很简单的计算不要用缓存机制,不然会浪费大量的性能
在取HTMLCollection
对象时,通常循环时直接这样写
for (var i = 0; i < myarray.length; i++) {
}
但是 集合的麻烦在于它们实时查询基本文档(HTML页面)。这意味着每次你访问任何集合的长度,你要实时查询DOM,而DOM操作一般都是比较昂贵的。所以我们可以用缓存的机制来减小性能的开销、
max = myarray.length 只用获取一次
就是在写的过程中,要遵循单一变量原则,这样代码易维护
代码的规范
1 可读性
命名
常量命名全部大写,可以用_分开
函数命名大驼峰
临时变量命名下划线开头,全部小写
属性方法命名用小驼峰
注释
格式
缩进跟换行
当传递一堆属性时,可以进行适当的换行
2 性能层面优化
能不用全局对象就尽量别用,用了要注意释放(arr=undefined 或arr=null)
不要频繁从对象取属性,可以适当缓存
尽量减少循环里面的计算(就是当arr.length 取长度时,可以把这个长度缓存下来,而不是 i<arr.length)
读取变量尽量从最近的作用域读取
(function(window){ })();
为什么要传window,不用传函数里面也能读到,传了是因为能够减少找变量的消耗
算法与缓存
3.架构层面
保持高内聚低
代码可维护性跟扩展性
JQ很好的扩展性跟模块互相独立
以后发现不断补充