Skip to content

SanChauncy/Notes

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

88 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

记录前端知识体系的点点滴滴,能力有限,持续更新。

自己挖的坑自己填!从2020年4月底开始维护,希望和你一起进步。

索引





HTML + CSS

🛫

HTML

高频知识点

CSS

CSS:选择器分类以及权重计算

盒模型汇总

BFC & IFC

请你描述一下 flex 布局

Grid 布局有了解吗?说说

层叠规则知道吗?

常见居中方案

  • 移动端适配汇总
  • 开发经验汇总
  • 雪碧图实现
  • 文本截断
  • 边框画图
  • 常见布局方案

浏览器

🛫

了解浏览器吗?请简单描述一下浏览器的架构?

输入 URL 后,都发生了什么?请从浏览器的视角分析进行分析?

那具体分析一下浏览器在渲染这个环节做了那些事情?

了解浏览器是如何执行 js 脚本的吗?其大体流程是怎样的?

单线程的 JavaScript,是如何处理复杂的 web 交互的?

V8 的 GC 过程有了解吗?说说你的理解

DOM 和 事件相关汇总

说一下 AJAX 和跨域吧?

ES

🛫

ES5 - JavaScript:数据类型

ES5 - 说一下什么是闭包?

ES5 - 原型的理解

ES5 - 继承方案

ES6 - class

ES6 - extends

ES6 - 装饰器

  • this 指向问题?

ES6 - 讲讲你理解的Promise

ES6 - Promise场景题汇总

ES6 - 即兴一下async?

汇总 - 数组api

编码/组件练习

手写

🛫

高阶函数之-初见AOP

高阶函数之-函数柯里化

高阶函数之-after函数

  • 高阶函数之-compose函数

实现简单:发布订阅模式

  • 实现简单:全局单利模式

Promise - 实现PromiseA+

Promise - 实现promisify?

  • Promise - 实现各路api

  • async - 原理实现

Nodejs- 实现eventEmitter; (待写简要思路)

组件

vue - 封装懒加载指令

  • 封装一个在线运行组件

  • 封装一个表单验证吧

vue

🛫

吐血整理重点!

vuex:原理总结

vue-router:原理总结

实现一个简单的数据侦测?

$wtach 和 computed 实现原理?

说说你对$mount 和模板编译的理解?

说一下你对nextTick的理解?

  • 详细说说虚拟 DOM?

react

🛫

webpack

🛫

nodeJS

🛫

NodeJs 有哪些特点?应用场景又有哪些?

V8、libuv 和 Nodejs 之间的关系?

说说你对 global 以及 global.process 的理解?

说一下 Liubv 的事件循环机制?

说说你对模块化的理解?

说一下Nodejs的异步编程吧?

性能优化

🛫

网络层面

常见的图片格式有哪些?他们的区别是什么?

浏览器缓存策略有了解吗?

CDN 是什么?回源策略了解过吗?

  • webpack 对静态资源的压缩与合并

首次渲染

css 和 js 阻塞页面渲染?你怎么理解?

有了解同构应用吗(SSR)?

  • SSR 项目技术沉淀

实际开发

如何高性能渲染十万条数据?

缓慢更新中

数据结构算法

🛫

数组

排序

出处 Hint + 解
Array.prototype.sort()
插入排序/选择排序/冒泡排序 基础排序汇总
快速排序 阮一峰老师 / 挡板思想 + swap
归并排序 山里有座庙,庙里有个老和尚,旁边有个小和尚
三栈排序
双栈排序
88. 合并两个有序数组 归并排序,谁大移谁(三指针),注意合并逻辑条件
75. 颜色分类 利用挡板思想进行排序分类,典型🌈问题
面试题 16.16. 部分排序 两趟,一正一反确定边界
169. 多数元素 快速排序返回众数/hash计数
TODO:
〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️ 〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️
  • 基础排序手写一遍重温思想,mergeSort重温
  • 排序时间复杂度总结
  • 栈排序

查找

Array.prototype.find()/findIndex()/indexOf()
704. 二分查找 相邻退出,进行后续处理
base-在有重复的数组中返回第一个/最后一个元素 移动mid,直到加单退出
LintCode:460. 在排序数组中找最接近的K个数 范围所缩小至加单,中心开花
74. 搜索二维矩阵 map回矩阵:r = mid / col c = mid % col
34. 在排序数组中查找元素的第一个和最后一个位置 找到元素,双指针左右移动
33. 搜索旋转排序数组 分割后,必定一半是有序
TODO:378. 有序矩阵中第K小的元素
〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️ 〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️

~

出处 Hint + 解
面试题03. 数组中重复的数字 哈希/quickSort
1. 两数之和 map
11. 盛最多水的容器 双指针夹逼
283. 移动零 双指针 + swap (不为0一起动)
TODO:15. 三数之和
〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️ 〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️

经典

翻转链表

链表的中间结点

环形链表

链表的中间结点

重排链表

分隔链表

两数相加

同类型

面试题18. 删除链表的节点

面试题22. 链表中倒数第k个节点

反转链表2

k个一组翻转链表

移除链表元素

回文链表

两数相加 II

栈 & 队列

出处 Hint + 解:
20. 有效的括号 DOM 树如何维护层级关系?这题就怎么做..
min stack?
双栈排序?
三栈排序?
实现队列?
矩形面积?
滑动窗口?
队列实现栈?
〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️ 〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️

链表

树(和递归天然结合,因此融合了递归一部分题型,理解就好)

出处 Hint + 解:
二叉树的中序遍历,(后序,前序) 在模拟后续实现思路时,注意剪枝这个 hack 操作
429. N 叉树的层序遍历 利用 children 接口很简单,如果限制只能 DFS 呢?
110. 平衡二叉树
101. 对称二叉树 左左 === 右右 && 左右 == 右左 👊
98. 验证二叉搜索树
二叉搜索树减枝?
二叉树搜索区间?
958. 二叉树的完全性检验
验证二叉搜索树
二叉搜索树的最近公共祖先
有序链表转换二叉搜索树
面试题 07. 重建二叉树 inorder\preorder 特点 + 分而治之 + sliceAPI
面试题 26. 树的子结构 巧妙找到入口 + 精干的条件判断
面试题 27. 二叉树的镜像 画图找规律:swap 子树的值
面试题 32 - I. 从上到下打印二叉树 队列
面试题 32 - II. 从上到下打印二叉树 II 队列 + 计数
面试题 32 - III. 从上到下打印二叉树 III 画图找规律:reverse 输出/双栈思想
面试题 34. 二叉树中和为某一值的路径 DFS + 回溯法
〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️ 〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️

String

Recursion + DFS

出处 Hint + 解:
70. 爬楼梯
22. 括号生成 递归穷举后,添加限制条件(括号正确性判断)
50. Pow(x, n) 快速幂求值(注意数学边界),缩小问题规模(递归
78. 子集 01 问题,加或者不加,注意引用值问题
51. N 皇后
322. 零钱兑换
236. 二叉树的最近公共祖先
105. 从前序与中序遍历序列构造二叉树
〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️ 〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️

BFS

出处 Hint + 解:
130. 被围绕的区域
K Smallest in Unsorted Array
200. 岛屿数量
127. 单词接龙
126. 单词接龙 II
515. 在每个树行中找最大值
〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️ 〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️

DP

出处 Hint + 解:
70. 爬楼梯 一维 dp,线性回头看(斐波那契)
55. 跳跃游戏
45. 跳跃游戏 II
122. 买卖股票的最佳时机 II
〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️ 〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️

箭指offer专题

数组
面试题03. 数组中重复的数字 排序 +diff / hash +diff / 索引排序
03-fllow up: 287. 寻找重复数 数量二分法
链表
面试题18. 删除链表的节点 思路:
面试题22. 链表中倒数第k个节点 思路:
面试题24. 反转链表 思路:
面试题35. 复杂链表的复制
面试题52. 两个链表的第一个公共节点
〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️ 〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️

网络

🛫

  • 输入一个 url 会发生什么?

HTTP1.1

你是如何理解 HTTP 的?特点有哪些?

你知道 HTTP 都有哪些版本吗?

说一下你对域名的理解

描述一下 HTTP 报文结构和常见的头部字段?

说一下 HTTP 的内容协商?

请求方法都有哪些?GET 和 POST 又有什么区别?

常见状态码说一下?

HTTP 重定向有了解吗?

说一下你了解的缓存策略?

HTTP 传输大文件有了解过吗?

了解 HTTP 长连接吧?那队头阻塞呢?

描述一下 cookie?

HTTP 性能优化方向有哪些?

  • 说说 HTTP 相关的代理有哪些?

  • Restful API 了解吗?你的最佳实践是什么?

websocket

  • 说说你对websocket的理解?
  • 他的应用领域有哪些?
  • websocket的长连接知道吗?

HTTP2

HTTP 2/3 有了解吗?

HTTPS

说一下 HTTP 和 HTTPS 的区别

说说对称加密和非对称加密的理解?

摘要算法?和数据签名?

说一下 TLS 握手

HTTPS优化策略有了解吗?

TCP

说说你是如何理解 TCP 的?

简述一下 TCP 报文结构?

描述一下你理解的TCP握手过程

说一下你对MSS和数据传输的理解?

说一下你对超时重传的理解?

说说你对滑动窗口的理解?

说说如何减少网络过程中的小报文?

知道慢启动、拥塞避免、快速重传和快速恢复吗?

那你知道选择性重传算法吗?(SACK)

说说 TCP 断开的过程

知道TCP的keepalive机制吗?

UDP

  • 和 TCP 的区别?

  • 为什么DNS使用UDP协议?

IP

正则

🛫

About

前端学习笔记,面试复习手册

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • JavaScript 93.1%
  • HTML 5.7%
  • CSS 1.2%