1、v8 的垃圾回收 2、宏任务微任务(这个基本必考,有的还会问和 node 端的区别 [被问到]) 3、网络协议相关(浏览器输入 url 之后的一系列过程[被问到]) 4、devtools 相关(怎样检测性能,怎样检测调用堆栈[被问到]) 5、浏览器缓存(强缓存协商缓存) 6、同源策略 7、浏览器分层和合成机制(# 为什么 css 动画比 JavaScript 高效) 8、浏览器中的解释器和编译器 9、浏览器中的线程和进程 10、重绘重排中怎么做性能优化[被问到]
1、理解闭包吗? 2、JavaScript 的作用域链理解吗?原型链呢?[被问到] 3、es6 有哪些新特性? 4、浮点数计算误差问题(0.1+0.2 为什么不等于 0.3) 5、async/await 和 promise 的区别,解决什么问题[被问到] 6、this 的一些理解(比如 bind 函数和箭头函数共用,this 的指向)[被问到] 7、 js 的不同规范(ES6 模块与 CommonJS 模块有什么区别?)[被问到] 8、 js 类型判断(null 与 undefined 的区别是什么?为什么类型不一样)[被问到]
1、如何理解 MVVM[被问到] 2、响应式的核心 API 是什么?[被问到] 3、为何不能监听数组变化 4、说说虚拟 dom,你听过 diff 算法么(一般会对比 vue2 和 vue3 的以及 react 的)[被问到] 5、vue 模板最后被编译成什么?render 函数最后的产物是什么 6、理解 vue 前端路由的原理吗?[被问到] 7、 看过源码吗?(后续会问一下源码中的细节,建议还是要大致看下源码,或者重点看下源码中公认实现比较好的地方)[被问到] 8、 自己实现 v-model[被问到] 9、 vue3 的一些新特性
react 就比较尴尬了,都没有问,就给准备的奉上了
1、react 父子组件通讯 2、hooks 的闭包的坑 3、setState 为何要使用不可变值,setState 是同步还是异步 4、react 单向数据流 5、redux 中间件相关 6、高阶组件 7、 合成事件 8、 fiber 如何优化的性能 9、 jsx 的本质,和 vue 的模板的一些区别 10、 react 相关的性能优化
angular 基本很多人也不会,所以面试如果不是特殊岗位,基本没人会问,即使问也都是什么依赖注入,父子组件传值,等一些基本问题
webpack 自不用多说,基本必考
1、Webpack 和 vite 有什么区别 2、module chunk bundle 的区别 3、webpack 怎么去做性能优化?如何提高 webpack 的构建速度?[被问过] 4、webpack、rollup、parcel 优劣?[被问过] 5、webpack 的构建流程是什么?[被问过] 6、webpack 怎么配置单页应用?怎么配置多页应用?vue 和 react 应用呢? 7、 简述跟 webpack 相关的工具链[被问过] 8、 loader 原理,plugin 原理,有没有写过[被问过] 9、 webpack 热更新原理 10、 babel 听说过吗?
网络协议问题,小厂没有人问,都是大厂问的,梳理如下:
1、简述下七层网络协议[被问过] 2、http 各个版本的区别 3、https 为啥是安全的(其实就是让你给 https 的的流程说一下)[被问过] 4、get 和 post 区别[被问过] 5、http 状态码,302 和 301 区别? 6、HTTP 的部首字段有哪些? 7、tcp 和 udp 区别 8、为什么是三次握手四次挥手?[被问过]、
这个在面试前准备了,但是并没有被问到,其实就是去背一些 csrf,xss 以及中间人攻击的八股不在赘述,很多人其实是没有深究的,我在准备过程中,其实发现了很多前辈们的智慧(这就是所谓的惊喜),比如 token 的出现就是为了解决 csrf 攻击的问题,这段前端鉴权的发展史研究起来其实是很有意思的,只是在功利社会,少有人有兴趣静下心来研究。
1、LRU 缓存(美团) 2、 有效的括号(美团) 3、 二叉树的最近公共祖先(美团) 4、重复的子字符串(美团) 5、数组中的第 K 个最大元素(美团) 6、合并两个有序数组(字节) 7、环形链表(字节) 8、两数之和(字节) 9、实现版本号比较(字节) 10、chainAsync – 链式调用异步函数(字节) 11、 螺旋矩阵(字节) 12、全排列(京东) 13、 爬楼梯(京东) 14、实现一个栈以及他的 pop,push,等方法(京东) 15、回文数(京东) 16、无重复字符的最长子串(小米) 17、Tree 和 array 之间相互转换(58) 17、random 实现返回一个长度为 num 元素值在[min, max]区间的整数数组(滴滴) 17、两个数组的交集(滴滴)
1、你最近在学习什么? 2、你觉得做过最有挑战的事情是什么? 3、你在项目中遇到了那些挑战? 4、你给项目中做了那些性能优化? 5、你是怎么解决一个具体的春节活动问题? 6、如果你的项目需要为其他项目赋能,你会怎么做? 7、你在工作中有没有做过过什么有成就感的事情? 8、说说在架构设计中的一些心得 9、自己的优势是什么?