JS 分为哪两大类型?都有什么各自的特点?你该如何判断正确的类型?
- 基础类型,null 和 number 存在的一些问题
- 对象类型,从垃圾回收的角度去切入,也可以说一下对象类型存在深浅拷贝的问题
- 判断类型,对比一下 typeof 和 instanceof 之间的区别
- 也可以指出 instanceof 判断类型也不是完全准确的
你理解的原型是什么?
- 原型小节中的总结内容
- 不是所有函数都有 prototype 属性
- 引申出原型链的概念
- 提出如何使用原型实现继承
- 继而可以引申出 ES6 中的 class 实现继承
bind、call 和 apply 各自有什么区别?
- 三者的不同
- 说出手写的思路
- 几种规则判断 this 到底是什么
- this 规则会涉及到 new
- 最后可以说下自己对于 new 的理解
ES6 中有使用过什么?
- class,那么 class 又可以拉回到原型的问题
- promise,那么线就被拉到了异步的内容
- proxy,那么如果你使用过 Vue 这个框架,就可以谈谈响应式原理的内容
- let 这些声明变量的语法,那么就可以谈及与 var 的不同,说到提升这块的内容
JS 是如何运行的?
- 可以先说 JS 是单线程运行的,这里就可以说说你理解的线程和进程的区别
- 然后讲到执行栈
- 接下来的内容就是涉及 Eventloop 了,微任务和宏任务的区别,哪些是微任务,哪些又是宏任务
- 还可以谈及浏览器和 Node 中的 Eventloop 的不同
- 最后还可以聊一聊 JS 中的垃圾回收