去年校招,我刷了整整3个月的前端八股文,从 JS 闭包到 React 源码,从 HTTP 缓存到 Webpack 打包,笔记记了上百页。结果你猜怎么着?面试时八股问题确实高频,但真正让我脱颖而出的,反而是那些八股背后“为什么”的理解。
后来我复盘发现:前端八股文不是背诵题库,而是知识体系的骨架。于是,我重新梳理了这些高频问题,不再堆砌答案,而是串联起背后的原理、场景和演进逻辑——这份《前端八股文新解》意外地被上百位朋友索要,甚至有朋友靠它从零基础逆袭拿到大厂offer。
今天,我把这份融合了“应试技巧”与“工程思维”的八股文整理出来。不为押题,只为帮你把零散的知识,真正长成自己的技术树。
第一部分:精简版
一、CSS相关
1.1 左边定宽,右边自适应方案:float + margin,float + calc
/#方案1 */
.left {
width: 120px;
float: left;
}
.right {
margin-left: 120px;
}
/* 方案2 */
.left {
width: 120xp;
float: left;
}
.right {
width: calc(100% - 120px);
float: left;
}
1.2 左右两边定宽,中间自适应:float,float + calc,圣杯布局 (设置 BFC, ··
1.3左右居中
1.4上下垂直居中
1.5 盒模型:content (元素内容) + padding(内边距) + border(边框) + mar...
1.6 BFC、IFC、GFC、FFC: FC(Formatting Contexts),格式化上下文等~~~
二、JS 基础(ES5)
2.1原型
2.2闭包
2.3作用域
2.4 this
2.5 call,apply,bind 三者用法和区别
2.6变量声明提升
三、JS 基础(ES6)
3.1 let,const
1et 产生块级作用域(通常配合 for 循环或者 {}进行使用产生块级作用域),const 申明的变量是常量(内存地址不变)
3.2 Promise
这里你谈 promise 的时候, 除了将他解决的痛点以及常用的 API 之外,最好进行拓展把 event1oop 带进来好好讲一下, microtask(微任务)、macrotask(任务)的执行顺序,如果看过 promise 源码,最好可以谈一谈原生 Promise 是如何实现的。Promise 的关键点在于ca11back 的两个参数,一个是 resovle,一个是reject 。还有就是 Promise 的链式调用(Promise.then(),每一个 then 都是一个责任人)
3.3 Generator
3.4 async 、await
3.5 AMD,CMD,CommonJs,ES6 Module:解决原始无模块化的痛点
四、框架相关
4.1数据双向绑定原理:常见数据绑定的方案
4.2 VDOM:三个 part
4.3 vue 和 react 区别
4.4 为什么用vue
五、网络基础类
5.1跨域
5.2 http 无状态无连接
5.3 http-cache:就是 http 缓存
5.4 cookie 和 session
5.5 安全问题,如 XSS 和 CSRF
第二部分:复习篇
大厂前端面试精选———算法篇
1.合并两个有序链表
2.括号生成
3.合并k个排序链表
4.两两交换链表中的节点
5.k个一组翻转链表
6.删除排序数组中的重复项~~~等
JavaScript面试真题
1.说说JavaScript中的数据类型?存储上的差别?
-
说说你了解的js数据结构?
-
DOM常见的操作有哪些?
4.说说你对BOM的理解,常见的BOM对象你了解哪些?
-
==和===区别,分别在什么情况使用
-
typeof 与 instanceof 区别
7.JavaScript原型,原型链?有什么特点?
8.说说你对作用域链的理解
-
谈谈this对象的理解
-
说说new操作符具体干了什么?
-
bind、call、apply 区别?如何实现一个bind?等~~~