面试大典

2020/11/11 面试

🌙 面试大典

🌙 1.React相关

🌙 1.1.React的Diff原理

🌙 1.2.Fiber解决什么问题

🌙 1.3.时间分片的大概原理

🌙 1.4.hooks原理以及为什么会出现hooks

🌙 1.5.setState原理

🌙 1.6.React优化方案

🌙 1.7.项目为何要使用 mobx 以及原理

🌙 1.8.mvvm 模型和 mvc 模型区别

MVC、MVP、MVVM (opens new window)

🌙 1.9.如何实现一个 mvvm 模型

🌙 1.10.说说 vnode 的了解

🌙 1.11.能简单介绍一下 react 执行过程吗

🌙 1.12.当场设计一个 Toast

🌙 1.13.react 的事件机制

🌙 1.14.react 调度机制

🌙 2.webpack

🌙 2.1.webpack的构建流程

🌙 2.2.plugins和loader的区别

🌙 2.3.webpack构建优化方式有哪些

🌙 2.4.webpack的分包策略

🌙 2.5.对 tree-shaking 的了解

🌙 2.6.webpack-dev-server 原理和如何处理跨域

🌙 2.7.webpack 的性能优化

🌙 2.8.webpack-dev-server 的 HMR 实现原理

🌙 2.9.webpack优化

  • 体积优化:tree shaking、按需引入,代码切割
  • 打包速度优化:缓存、多线程打包、优化打包路径

tree-shaking实战 (opens new window)

Tree-Shaking性能优化实践 - 原理篇 (opens new window)

Tree-Shaking性能优化实践 - 实践篇 (opens new window)

🌙 3.JavaScript相关

🌙 3.1.promise

🌙 3.2.async/await原理

🌙 3.3.手写订阅发布模式

🌙 3.4.bind原理

🌙 3.5.new原理

🌙 3.6.weak-Set、weak-Map 和 Set、Map 区别

🌙 3.7.数据劫持 + 发布订阅

🌙 3.8.webSocket 和 ajax 的区别

🌙 3.9.requestAnimationFarme 和 setTimeout 区别

🌙 3.10.实现一个函数 compose([fn1,fn2,fn3..]) 转成 fn3(fn2(fn1()))(compose和pipe)

🌙 3.11.闭包

🌙 3.12.原型链

🌙 4.网络相关

🌙 4.1.状态码

  • 301、302、307、308的区别

🌙 4.2.http协议中的缓存策略

🌙 4.3.keep-alive和多路复用的区别

🌙 4.4.http2.0的特性

  • 二进制传输
  • Header 压缩,顺便吹了一下哈夫曼编码
  • 多路复用
  • 服务器推送

🌙 4.5.头部压缩原理

🌙 4.6.tcp握手

🌙 4.7.udp和tcp区别

🌙 4.8.dns原理

🌙 4.9.https原理

🌙 4.10.跨域

🌙 4.11.CROS 中的简单请求和非简单请求

🌙 4.14.http 的 get 和 post 区别

🌙 4.15.https 的握手过程

🌙 4.16.xss、csrf 有了解过吗,如何防范

🌙 4.17.DNS 的路径选择用了啥算法

🌙 5.浏览器相关

🌙 5.1.eventLoop

🌙 5.2.关键渲染路径

🌙 5.3.加载原理

🌙 5.4.DOM树和渲染树区别

🌙 5.5.回流和重绘

🌙 5.6.缓存策略

🌙 5.7.从 浏览器输入到页面显示过程

🌙 5.8.鉴权有了解过了

  • Seesion/cookie
  • Token
  • OAuth
  • SSO

🌙 6.性能优化相关

🌙 6.1.白屏优化方案

🌙 6.2.长列表优化方案

🌙 6.3.大型文件上传

🌙 7.Node相关

🌙 7.1.egg了解吗

🌙 7.2.洋葱模型

🌙 7.3.node的eventLoop和浏览器的区别

🌙 7.4.如何保证node的高可用,容灾等措施

🌙 7.5.node如何发布

🌙 7.6.Common.js 和 es6 module 区别

🌙 7.7.express、koa2、egg的区别

🌙 8.算法相关

🌙 8.1.两数之和

🌙 8.2.三数之和

🌙 8.3.洗牌算法

🌙 8.4.数组中的第K个最大元素

🌙 8.5.快排和归并

🌙 8.6.爬楼梯

🌙 8.7.使用最小花费爬楼梯

🌙 8.8.最小编辑距离

🌙 8.9.快照数组

🌙 8.10.路径总和

🌙 8.11.转置矩阵

🌙 8.12.LRU算法

🌙 8.13.DFS和BFS

🌙 8.14.滑动窗口(双指针)

🌙 8.15.二分查找

🌙 9.typescript相关

🌙 9.1.接口

🌙 9.2.枚举

🌙 9.3.泛型

🌙 10.CSS相关

🌙 10.1.用 css3 开启硬件 GPU 加速

🌙 10.2.css 选择器优先度

🌙 10.3.rem、em、vh、vw 和 px 的关系,以及移动端适配方式

🌙 10.4.清除浮动

🌙 10.5.盒子模型

🌙 10.6.flex

🌙 10.7.层级上下文

🌙 10.8.各种布局

艺术喵 2 年前端面试心路历程(字节跳动、YY、虎牙、BIGO)| 掘金技术征文 (opens new window)

小前端进腾讯啦! (opens new window)

一名【合格】前端工程师的自检清单 (opens new window)

web前端面试 - 面试官系列 (opens new window)

前端扫盲 (opens new window)