1. typeof 能判断哪些类型

    1. 识别所有值类型
    2. 识别函数
    3. 判断是否为引用类型(不可再发)
  2. 何时使用=== 何时使用==

  3. 值类型和应用类型的区别

  4. 手写深浅拷贝

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    const deepClone = (obj = {}) => {
    if (typeof obj !== 'object' || obj == null) {
    return obj
    }
    let res
    if (obj instanceof Array) {
    res = []
    } else {
    res = {}
    }
    for (const key in obj) {
    if (Object.hasOwnProperty.call(obj, key)) {
    res[key] = deepClone(obj[key])
    }
    }
    return res
    }
  5. 如何准确判断一个变量是不是数组

  6. 手写一个简易的jquery,考虑插件(往原型上挂载)和拓展性(继承)

  7. class 的原型本质 ,怎么理解

  8. this的不用引用场景,如何取值

    1. 备注:this是执行是才能决定是那个
  9. 手写bind

  10. 实际开发中闭包的引用场景,举例说明

    1. 函数作为返回值,函数作为参数
    2. 备注:所有自由变量的查找,都是在定义的作用域向商超查找,不是执行
  11. 创建10个标签,点击弹出对应序号

  12. dom是那种数据结构

  13. dom操作的常用api

  14. attr和property的区别

  15. 一次性插入多个节点,考虑性能

  16. 跨域:端口 协议 域名 不同为不同源,不同源访问为跨域

  17. 手写trim str.replace(‘/^\w+/‘,’’).replace(/\w+$/)

  18. 如何捕获js中的异常

    1. try cath 手动捕获
         2. window.onerror 自动捕获
  19. window.onload 和 DOMContentLoaded 的区别

  20. js 创建10个<a> 标签,点击时弹出对应的序号

  21. 手写节流 throttle 、防抖 debounce

  22. promise 解决了什么问题