定义变量的形式
ES5 有俩种:
var 和 function
ES6 有 6 种
减少四种:let、const、import、class。
留神:let、const、class 申明的全局变量再也不会和全局对象的属性挂钩
闭包
闭包就是能读取其余函数外部变量的函数。
- 长处:防止全局变量的净化。心愿一个变量长期贮存再内存中(缓存变量)
- 毛病:内存泄露(耗费),常驻内存,减少内存使用量
DOM 事件有哪些阶段
- 三大阶段:捕捉阶段、指标阶段、冒泡阶段
- 简略来说:事件不间接绑定到某元素上,而是绑定到该元素的父元素上,进行触发事件操作时,再通过条件判断,执行事件触发后的语句
- 益处:代码更简洁、节约内存开销
javascript 的垃圾回收机制
- javascript 在创建对象(对象、字符串等)时会为他们分配内存,不再应用时会“主动”开释内存,这个过程称为垃圾收集。
-
内存生命周期中的每个阶段:
- 分配内存:内存是由操作系统主动调配的,它容许您的程序应用。
- 应用内存:这是一个程序理论应用之前调配的内存,在代码中应用调配的变量时,就会产生读和写的操作。
- 开释内存:开释所有不再应用的内存,使之成为自在内存,并能够被反复利用。与分配内存操作一样,这一操作在低级语言中,也须要显式执行。
四种常见的内存泄露:全局变量,未革除的定时器,闭包,以及 dom 的援用
- 全局变量:不必 var 申明的全局变量,相当于挂载到 window 对象上,如:b=2; 解决:应用严格模式
- 被忘记的定时器和回调函数
- 闭包
- 没有清理的 DOM 元素援用
前端性能优化罕用办法
- 缩小申请数量
- 减小资源大小
- 优化网络连接
- 优化资源加载
- 缩小重绘回流
- 使用性能更好的 API
- 借助 webpack 等工具压缩优化