JS-军规
基本原则
如何重构
el1.onclick = () => {}
el2.onmouseenter = () => {}
el3.onmouseleave = () => {}
//change to
function bindEvents() {
let events = [
{ el: xx, event: yy, fn: zz },
{ el: xx, event: yy, fn: zz },
{ el: xx, event: yy, fn: zz },
]
events.forEach((eventObject) => {
$(eventObject).on(eventObject.event, eventObject.fn)
})
}JS
命名
避免全局查找
循环
条件分支
使用字面量
使用常量(避免魔法数字)
使用默认函数参数和解构
字符串连接
类型转换(总是检查数据类型)
避免与null进行比较
尊重对象的所有权
使用setInterval代替setTimeout
避免with、eval、Function
with、eval、FunctionDOM
尽量
使用DocumentFragment优化多次append
使用一次innerHTML赋值代替构建dom元素
通过模板元素clone,替代createElement
使用firstChild和nextSibling代替childNodes遍历dom元素
使用事件代理
删除DOM节点之前,删除注册在该节点上的事件
避免内存泄漏
性能
Last updated