前端面试题(七)

191 阅读3分钟

微医(40问)

  1. 介绍JS数据类型,基本数据类型和引⽤数据类型的区别
  2. Array是Object类型吗
  3. 数据类型分别存在哪⾥

a.

var a = {name: "前端开发"}; 
var b = a; 
a = null

那么b输出什么

b. var a = {b: 1}存放在哪⾥

c. var a = {b: {c: 1}}存放在哪⾥

  1. 栈和堆的区别

栈存储基本类型和指针,堆存储指针指向的对象

  1. 垃圾回收时栈和堆的区别

栈(stack)会自动分配内存空间,会自动释放。堆(heap)动态分配的内存,大小不定也不会自动释放。 堆:队列优先,先进先出;由操作系统自动分配释放 ,存放函数的参数值,局部变量的值等。 栈:先进后出;动态分配的空间 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收,分配方式倒是类似于链表。

  1. 数组⾥⾯有10万个数据,取第⼀个元素和第10万个元素的时间相差多少

答案0,因为数组是一块线性连续的内存,我们可以通过寻址公式一步取出对应的成员,这跟成员的位置没有关系

  1. 栈和堆具体怎么存储

栈是连续的空间、堆需要系统分配空间

  1. 介绍闭包以及闭包为什么没清除

闭包的含义是函数在调用时能够访问函数在定义时可以访问的作用域,因为有函数引用,所有不会回收。

那么闭包清除的方式就是将不需要的函数名赋值为null

  1. 闭包的使⽤场景

  2. JS怎么实现异步

  3. 异步整个执⾏周期

建立异步操作,等待,回调

  1. Promise的三种状态

  2. Async/Await怎么实现

  3. Promise和setTimeout执⾏先后的区别

Promise不用

  1. JS为什么要区分微任务和宏任务
  2. Promise构造函数是同步还是异步执⾏,then呢
  3. 发布-订阅和观察者模式的区别
  4. JS执⾏过程中分为哪些阶段
  5. 词法作⽤域和this的区别
  6. 平常是怎么做继承
  7. 深拷⻉和浅拷⻉
  8. loadsh深拷⻉实现原理
  9. ES6中let块作⽤域是怎么实现的
  10. React中setState后发⽣了什么 a. setState为什么默认是异步 b. setState什么时候是同步的
  11. 为什么3⼤框架出现以后就出现很多native(RN)框架(虚拟DOM)
  12. 虚拟DOM主要做了什么
  13. 虚拟DOM本身是什么(JS对象)
  14. 304是什么
  15. 打包时Hash码是怎么⽣成的
  16. 随机值存在⼀样的情况,如何避免
  17. 使⽤webpack构建时有⽆做⼀些⾃定义操作
  18. webpack做了什么
  19. a,b两个按钮,点击aba,返回顺序可能是baa,如何保证是 aba(Promise.then) a. node接⼝转发有⽆做什么优化 b. node起服务如何保证稳定性,平缓降级,重启等
  20. RN有没有做热加载
  21. RN遇到的兼容性问题
  22. RN如何实现⼀个原⽣的组件
  23. RN混原⽣和原⽣混RN有什么不同
  24. 什么是单⻚项⽬
  25. 遇到的复杂业务场景
  26. Promise.all实现原理