因为我的主要技术站是以 react 为主, 所以框架篇中不会写太多 vue 相关知识点
最近经历了好多次的面试, 这里就将我最近面到的或者说是看到的题目记录下来, 作为后面换工作时的预习
这些都会了, P6 是不成问题的
主要分为六大类, css, js, 框架,浏览器, 计算机基础, 算法
CSS
- BFC 概念以及常用情景
- 行内元素和块元素
- CSS 优先级
- 清除浮动方法
- CSS 盒子模型
- display 的一些值
- position 的一些值
- 居中方案
- style 和 @import 区别
- CSS 优化方案
JS
- 防抖节流
- instanceof 原理
- typeof 判断类型
- 说一说原型链
- es5 继承的几种方式
- 数组中常用 api
- 对象中的 api
- Map 和 Set 特点, 和普通对象,数组的区别, weakMap 和 weakSet
- 深拷贝和浅拷贝
- Let, Const, Var
- 闭包
==
和===
- bind 的实现
- call 和 apply 区别和实现
- 柯里化
- 垃圾回收机制
- V8 的理解
- new 的原理
- promise, promise.all 等 APi 原理
- generator 原理
- this 指向
- 代理和反射
- cookie 和 storage
- IndexedDB
- Service Worker
- WASM
- 数据精度问题, bigint
- 正则表达式, 如何优化
设计模式
- 发布订阅模式
- 工厂模式
- 装饰器模式
- 惰性模式
- MVC,MVP,MVVM
- 状态模式,策略模式
- 外观模式
- 享元模式
- 职责链模式
性能优化
- 尾调用, 虚拟类, V8优化手段
- 预加载, 预解析
- 骨架屏
- lazyLoad(路由和图片)
- CDN
- 代码压缩
- 图片压缩, 或者使用其他格式图片
- 对于性能的测试
框架
- react 生命周期
- react 合成方法
- react 优化 shouldComponentUpdate, memo
- useEffect
- 虚拟 dom
- 错误边界
- Suspense lazy, 他和 react-loadable, 各自的实现原理
- class 和 function 区别
- react diff 的复杂度,以及 react diff 的原理
- react setState 同步异步问题
- hooks 使用过没有, 说一说 API
- hooks 的执行原理, 为什么不能在条件中使用
- fiber 原理
- HOC 的原理, 和 hooks 对比
- 错误处理, 及对应框架 如 sentry
- vue 原理
- Redux 原理
- mobx 原理
- typescript 的编译原理
- compose 函数
- ssr
- ts 中 type 和 interface 区别
- react-router 原理
- history 和 hash
工程化框架
- webpack 工作流程
- webpack 优化, 拆包
- webpack hotLoad 原理
- loader 缓存原理
- 怎么看待 vite 和 snowpack, 和 webpack 对比有什么区别
- 摇树优化
- babel 原理
- 微服务
- CMD,AMD, CommonJS, es6 模块
- lerna 多个包管理
- submodules
- graphQL
图形化
- canvas 相关
- svg
- webGL
移动端框架
taro
- 编译机制
react-native
- 原生和 js 层交互机制
- 选择 RN 的原因 和 flutter 相比较有什么区别
- 热更新, 热更新的增量更新
h5
- js bridge 通信原理
- rem vw
- mediaQuery
浏览器
- 重绘和回流
- 从输入 url 到页面呈现
- EventLoop 事件循环机制
- 缓存策略
- 浏览器工作原理
- DOM 树
- 事件捕获
- 跨域
计算机基础
- http 状态码
- get 和 post 区别
- cdn 原理
- https 原理
- 三次握手和四次挥手
- http 版本
- tcp 和 udp 区别
- tcp 有效传输
- websocket
- 网络安全问题
算法
- 排序算法, 时间,空间复杂度
- 二叉树相关 深度优先遍历和广度优先遍历等
- 最短路径算法
- 滑动窗口
- 动态规划
- 链表相关
- 多维数组合成一维