自己收集的面试题

  1. 关于react diff。reactdiffvue2diff有什么区别?与vue3呢?仅仅是lis吗?

  2. 关于 react fiber,fiber的引入究竟对react 有什么架构层面的影响,double fiber tree是否有必要存在?

  3. 关于 react schedule,schedule究竟以一个什么形式,什么规律来运行,中断和恢复呢?lane解决了什么问题?

  4. 关于 vue,reactive core有自己实现过吗?为什么要做这种启发式的aotslot的实现?

  5. 关于 ng 。脏检测怎么做到高性能?看过svelte的脏检测吗?ivy是什么?增量 domvirtual dom的区别?ng里模块化和分层di是怎么实现的?

  6. 关于 node eventloop。在node里,udp和文件api任务什么区别吗?什么是快io什么是慢ionodejs如何调度快慢io的?node10之前的事件循环是怎么样的?libuv是以一种什么样的趋向去调度io任务的?async task的抽象是什么呢?什么是tickcallback

  7. 关于 node runtime,node是怎么启动的?node怎么console 调试console什么时候注入node的?

  8. 关于 node addon,node_api是一种什么抽象?jsvalue为什么是Object的二级指针?cppjs 层面的共享内存靠什么实现最为简单?ffi是怎么实现的?

  9. 关于 v8 ,什么是isolate?什么是context?值的抽象?v8是怎么管理内存的?怎么直接用v8 apinode-addon

  10. 关于 js 优化。自己会熟练使用js profiler吗?甚至是否是从未使用过?做过ms级别的优化吗?自己问的问题是否真的需要在js trick层面进行优化?

  11. 关于 js-native 框架。知道jsnative端的详细通信过程吗?做过binding吗?知道jsbridge的实现吗?知道怎么热更新吗?知道热更新的原理吗?知道怎么手写js引擎去做热更新吗?

  12. 关于工程化。webpack5是怎么做持久化储存的?mf是怎么服务于微前端的,又是怎么解决external的问题的?mf的原理是什么?hardsourceplugin的原理是什么,它为什么这么快?lerna的最佳实践?submodule的最佳实践?webpackgulp怎么配合?tapable`究竟是什么抽象?

  13. 浏览器。render object的晋升过程?cssdom的融会时机?slpraf的时机?什么是rafwithtimeout,存在的意义?vsync影响了什么?为什么不要为滚动增加事件监听?为什么要eval("debugger")

  1. 什么是值?什么是类型?什么是变量? 它们之间的区别和联系?
  2. 基本类型和引用类型的区别是什么?nullundefined 区别是什么?
  3. “一切皆对象”怎么理解? number 也是对象么?字符串也是对象么?
  4. 基础类型存放在栈上,引用类型存放在堆上,请问是为什么? 字符串是存放在栈上么?对象中有一个 number 属性,那么 number 属性是存放在堆上还是栈上?
  5. 作用域的本质是什么?闭包和作用域的关系是什么?
  6. let,const,var 三者的本质不同是什么?为什么不推荐使用 var
  7. 数组的本质是什么,运用了什么样的设计模式?数组和对象的关系是什么?
  8. 原型链能够实现所谓的继承的本质原因是什么?
  9. 箭头函数是用来解决什么问题的?
  10. 什么是高阶函数?用处和用法?
  11. 什么是异步编程,为什么说它对 Web 开发很重要?