⭐️ 必学 ✅ 建议学❗ 面试重点
前端基础知识
✅ 互联网
⭐️ 域名
⭐️ DNS
⭐️ 服务器
✅ 浏览器
浏览器 DOM 事件流 / 事件委托
⭐️ 浏览器加载顺序
⭐️ 浏览器渲染过程
浏览器事件循环
浏览器同源策略
❗ 跨域解决方案
浏览器缓存
控制台调试技巧
✅ HTTP
❗ HTTP 请求过程
常见 HTTP 协议
- HTTP 1.0
- ⭐️ HTTP 1.1
- HTTP 2
- HTTP 3
⭐️ HTTP 请求类别
⭐️ 常见状态码
1xx 信息
2xx 成功
3xx 重定向
4xx 客户端错误
5xx 服务器错误
WebSocket
⭐️ Cookie
Session
⭐️ HTTPS
计算机基础
✅ 算法和数据结构
⭐️ 时间 / 空间复杂度分析
如何衡量算法好坏?
时间复杂度:运行时间长短。
空间复杂度:占用内存大小。
数据结构 (先)
- 数组
- 字符串
- 队列
- 栈
- 链表
- 集合
- 哈希
- 二叉树
物理结构和逻辑结构的区别?
物理结构就像人的血肉和骨骼,看得见,摸得着,实实在在,如数组、链表。
逻辑结构就像人的思想和精神,它们看不见、摸不着,如队列、栈、树、图。
线性存储结构和非线性存储结构的区别?
线性:元素之间的关系是一对一的,如栈、队列。
非线性:每个元素可能连接0或多个元素,如树、图。
算法 (后)
- 排序
- 双指针
- 查找
- 分治
- 动态规划
- 递归
- 回溯
- 贪心
- 位运算
- DFS
- BFS
- 图
✅ 计算机网络
- HTTP 协议
- 网络模型
- UDP / TCP 协议
✅ 操作系统
- 进程、线程
- 进程 / 线程间通讯方式
- 进程调度算法
- 进程 / 线程状态
- 死锁
- 内存管理
软件开发基础
✅ 设计模式
- 单例模式
- 代理模式
- 工厂模式
- 装饰者模式
- 观察者模式
- 策略模式
- 门面模式
⭐️ Git 版本控制
常用命令
✅ Linux 服务器
常用命令
✅ 正则表达式