前端八股文

985 阅读3分钟

JS基础

  1. 原型对象和原型链
  2. 作用域、作用域链、执行上下文
  3. JS继承
  4. 数据类型
  5. 类型判断(Object,prototype,toString,call)
  6. var、const、let对比
  7. new的过程
  8. this指向问题
  9. bind实现方法
  10. 闭包
  11. 事件循环【高频】和node中的区别
  12. 手写promise
  13. async&await
  14. 异步&同步
  15. 深拷贝&浅拷贝
function deepClone(val: object): object
function deepClone(val: Array): Array
function deepclone(val: object | Array): object | Array {
  const initial = Array.isArray(val) ? [] : {}
  for(const key in val) {
    if(typeof val[key] === 'object') initial[key] = deepClone(val[key])
    else initial[key] = val[key]
  }
  return initial
}
  1. ES6新语法
  2. 实现多页面通讯
  3. 原生JS遍历时获取下标的三种方式
  4. JS垃圾回收机制
  5. 事件流(冒泡、捕获)事件委托
  6. BOM DOM
  7. 数组的操作方式(哪些改变原数组)
  8. for的循环方法(为什么Object不能使用for of)
  9. 迭代器
  10. meta SEO
  11. 词法分析 语法分析
  12. 箭头函数
  13. JS数据类型转换

CSS

  1. 盒模型
  2. 选择器及其等级
  3. 完成扇形 三角形
  4. 常见的布局问题
  5. 伪元素 伪类

操作系统

  • 进行 线程(协程)

前后端通讯

  1. 输入URL到页面展示【高频】
  2. 跨域【高频】
  3. HTTP各版本(通常有缓存带出来的问题)
  4. HTTPS原理【高频】HTTPS协议
  5. TCP三次握手、四次挥手
  6. HTTP请求/响应过程
  7. TCP和UDP区别
  8. HTTP常见状态码
  9. OSI网络七层模型
  10. 传输层有什么协议
  11. HTTP2.0 3.0
  12. get和post请求
  13. 鉴权
  14. 强缓存 协商缓存
  15. 请求头有什么
  16. WebKit渲染流程
  17. websocket
  18. 浏览器的多进程和多线程

安全

  1. 有哪些安全问题
  2. 解决的办法
  3. XSS
  4. CSRF

工程化

  1. 页面性能优化【高频】(传输优化、渲染优化)
  2. webpack性能优化
  3. webpack打包流程
  4. VITE
  5. 常用的webpack插件
  6. loader&plugins
  7. CommonJS和ED6的区别【TreeShaking】
  8. babel polyfill
  9. 内存泄漏怎么查 怎么解决
  10. 白屏问题(SSR或者阻塞等)
  11. SSR

REACT

  1. React的diff算法
  2. React中的setState是同步还是异步【卡松老师讲解】
  3. React中各种组件的复用(mixin,render,props,hoc,hook)
  4. React的fiber架构
  5. 老版本的react的某些生命周期废弃的理由
  6. React性能优化
  7. React生命周期
  8. 新版生命周期和fiber架构的一些联系
  9. 虚拟DOM的作用
  10. useEffect&CDM
  11. context
  12. 不可变对象
  13. suspense
  14. useState保证每次都取到上次的数据
  15. useCallback+useMemo
  16. React hook
  17. React三大属性和组件间与组件内通信
  18. Redux
  19. Redux+ModX
  20. 受控组件 非受控组件

VUE

  1. 和react的区别,为什么16.8之前vue性能更优
  2. Diff(手撕)
  3. 响应式原理(数据挟持和Proxy)
  4. MVVM和MVC的区别
  5. 常用语法糖
  6. 两种路由【高频】
  7. 组件间通信
  8. nextTick
  9. watch和computed
  10. keep-alive和show
  11. 生命周期
  12. VueX
  13. mutation&actions

TypeScript

  1. ts中type和interface的区别
  2. ts如何实现一个函数的重载
  3. 手写ts的工具函数

手撕

  1. promise.all
  2. reduce
  3. map
  4. new
  5. bind
  6. 节流防抖
  7. 扁平化
  8. 深拷贝
  9. 继承
  10. merge assign
  11. 快排 归并
  12. Diff算法
  13. eventEmitter
  14. 获取URL后面的参数
  15. 伪数组的处理

数据结构与算法

其他

  1. GIT常用命令
  2. 浏览器渲染之 重绘重拍
  3. express--使用Node.js搭建服务器
  4. axios--promise+xhr的ajax请求
  5. 函数防抖&函数节流
  6. cookie,session,localStorage,sessionStorage,webStorage