2021 前端校招面试知识点(八股文)整理

1. JavaScript

  • 基本数据类型 (7种)
  • this 的指向 (new, 隐式绑定, 显式绑定)
  • Function 的 call, apply, bind 方法
  • Promise, eventloop, 宏任务和微任务
  • 闭包 (概念, 用途, 手写)
  • 原型链
  • 继承 (extends, 原型链继承, 构造函数继承, 组合继承, 寄生组合继承)
  • 深拷贝和浅拷贝
  • 事件冒泡/捕获, 事件委托, 阻止冒泡, 哪些事件不能冒泡
  • sort() 的复杂度

2. 浏览器

  • 回流和重绘
  • http 缓存, 协商缓存
  • cookies, sessionStorage, localStorage
  • 跨域问题

3. CSS

  • 盒子模型, 怪异盒子
  • float, 清除浮动
  • 垂直居中的方法
  • flow, absolute, relative, sticky
  • flex
  • 样式优先级

4. HTML

  • 块元素, 行内元素
  • 语义化标签: header, section 等
  • 异步加载JS文件: defer 和 async

5. Vue

  • 响应式原理 (Vue2 和 Vue3)
  • 生命周期, 父子生命周期的顺序
  • 组件通信: props, $emit 等
  • vuex: action 和 mutation
  • diff 原理
  • v-if 和 v-show
  • data 为什么是一个函数
  • computed 和 watch
  • mixin mixin 的缺陷
  • 异步组件, keep-alive
  • 路由, history模式

6. React

  • 常用的 Hooks
  • fiber
  • 高阶组件
  • 受控组件

7. 前端工程化

  • bebal 原理
  • 模块化方案: ES6 和 commonJS

8. 计算机网络

  • http: 数据包的构成, 状态码, http2 和 http3, https
  • tcp 和 udp, tcp 握手和挥手
  • OSI参考模型

9. 手写代码

  • 事件委托
  • promise 的 all() 和 race()
  • 数组的 call(), apply(), bind()
  • 实现 new 方法
  • 防抖和节流
  • 快排, 冒泡排序
  • 二分查找, 二分插入
  • 数组去重
  • 深拷贝
  • 深度/ 广度优先遍历
  • 正则表达式
  • 复杂度分析