Javascript 异步编程 内存 & 浏览器执行相关

76 阅读1分钟

异步编程

  1. 聊聊遇到哪些异步执行方式? * 回调函数 => cb 回调地狱 promise => 链式调用 => 语义不明确 generator => 考虑如何控制执行 co 库 async await => 不改变同步书写习惯的前提下,异步处理

  2. 聊聊 promise 的理解 * 一个对象、一个容器 => 触发操作 三个状态: pending | resolved | rejected 两个过程: pending => resolved pending => rejected promise 缺点: 无法取消 pending 状态,无细分状态

内存 & 浏览器执行相关

  1. 简单说说看对垃圾回收的理解? * 垃圾回收概念: jS 具有自动垃圾回收机制,找到不再使用的变量,释放其占用的内存空间 JS 存在两种变量: 局部变量 + 全局变量

  2. 现代浏览器如何处理垃圾回收? ** 标记清除、引用计数

    内存中所有变量加上标记,当前环境状态。定期进行标记变量的回收。

    变量加上的是被引用使用的使用方个数。降低到 0 时自动清除

  3. 减少垃圾的方案 *** 数组优化:清空数组时,赋值一个[] => length = 0 object 优化:对象尽量复用,减少深拷贝 函数优化:循环中的函数表达式,尽量统一放在外面