ES5中定义变量的方式有两种:var和functionES6有6种方式加4种:let、const、import、class。注意:let、const、class声明的全局变量将不再与全局对象的属性挂钩。ClosureClosure是一个可以读取其他函数内部变量的函数。优点:避免全局变量的污染。希望一个变量长期保存在内存中(缓存变量)缺点:内存泄漏(消耗)、常驻内存、增加内存占用DOM事件的三个??阶段是什么:捕获阶段、目标阶段、冒泡阶段简单的说:事件不是直接绑定到一个元素上,而是绑定到该元素的父元素上。触发事件操作时,判断条件执行事件触发后的语句。好处:代码更简洁,节省内存开销javascript垃圾回收机制JavaScript在创建对象(对象、字符串等)时为其分配内存,不再使用时“自动”释放内存。这个过程称为垃圾收集。内存生命周期的每个阶段:分配内存:内存由操作系统自动分配,它允许您的程序使用。已用内存:这是一个实际使用以前分配的内存的程序。当在代码中使用分配的变量时,会发生读取和写入操作。释放内存:释放所有未使用的内存,使其成为空闲内存,可以重复使用。与分配内存一样,此操作需要在低级语言中显式执行。四种常见内存泄漏:全局变量、未清除定时器、闭包、dom引用全局变量:全局变量声明时不带var相当于挂载在window对象上,如:b=2;解决方案:使用严格模式忘记定时器和回调函数闭包未清理DOM元素引用前端性能优化常用方法减少请求数减少资源大小优化网络连接优化资源加载减少重绘Reflow使用更好的API使用webpack等工具压缩优化
