乐趣区

关于javascript:js-面试相关

定义变量的形式

ES5 有俩种:

var 和 function

ES6 有 6 种

减少四种:let、const、import、class。
留神:let、const、class 申明的全局变量再也不会和全局对象的属性挂钩

闭包

闭包就是能读取其余函数外部变量的函数。

  • 长处:防止全局变量的净化。心愿一个变量长期贮存再内存中(缓存变量)
  • 毛病:内存泄露(耗费),常驻内存,减少内存使用量

DOM 事件有哪些阶段

  • 三大阶段:捕捉阶段、指标阶段、冒泡阶段
  • 简略来说:事件不间接绑定到某元素上,而是绑定到该元素的父元素上,进行触发事件操作时,再通过条件判断,执行事件触发后的语句
  • 益处:代码更简洁、节约内存开销

javascript 的垃圾回收机制

  • javascript 在创建对象(对象、字符串等)时会为他们分配内存,不再应用时会“主动”开释内存,这个过程称为垃圾收集。
  • 内存生命周期中的每个阶段:

    • 分配内存:内存是由操作系统主动调配的,它容许您的程序应用。
    • 应用内存:这是一个程序理论应用之前调配的内存,在代码中应用调配的变量时,就会产生读和写的操作。
    • 开释内存:开释所有不再应用的内存,使之成为自在内存,并能够被反复利用。与分配内存操作一样,这一操作在低级语言中,也须要显式执行。

四种常见的内存泄露:全局变量,未革除的定时器,闭包,以及 dom 的援用

  • 全局变量:不必 var 申明的全局变量,相当于挂载到 window 对象上,如:b=2; 解决:应用严格模式
  • 被忘记的定时器和回调函数
  • 闭包
  • 没有清理的 DOM 元素援用

前端性能优化罕用办法

  • 缩小申请数量
  • 减小资源大小
  • 优化网络连接
  • 优化资源加载
  • 缩小重绘回流
  • 使用性能更好的 API
  • 借助 webpack 等工具压缩优化
退出移动版