如何打破前端的内卷困境?,详细的前端学习指南

65 阅读7分钟

7 靠自己!!!

重要的事情说三遍!!!

说到底,做选择的都是你自己,如何做也在于你自己,不要给自己找那么多借口,不然再过十年,你还是会这样说。

前端学习内容复杂、网上资料良莠不齐,想要靠自己梳理清楚确实不容易,为了帮助想要跳槽进大厂的朋友顺利通过前端面试,我们为你专门梳理了各个大厂前端工程师常考必考的面试题型,总结出269页的「前端大厂面试宝典(含真题详细解答)」

HTML

html 语义化

canvas 相关

svg和canvas的区别?

html5有哪些新特性?

如何处理HTML5新标签的浏览器兼容问题?

说说 title 和 alt 属性

HTML全局属性(global attribute)有哪些

CSS

让一个元素水平垂直居中,到底有多少种方案?

浮动布局的优点?有什么缺点?清除浮动有哪些方式?

使用display:inline-block会产生什么问题?解决方法?

布局题:div垂直居中,左右10px,高度始终为宽度一半

盒模型

CSS如何进行品字布局?

CSS如何进行圣杯布局

CSS如何实现双飞翼布局?

什么是BFC?

触发条件

BFC渲染规则

应用场景

avaScript

JS原始数据类型有哪些?引用数据类型有哪些?

null是对象吗?为什么?

‘1’.toString()为什么可以调用?

0.1+0.2为什么不等于0.3?

什么是BigInt? 为什么需要BigInt?

如何创建并使用BigInt?

typeof 是否能正确判断类型?

instanceof能否判断基本数据类型?

能不能手动实现一下instanceof的功能?

Object.is和===的区别?

[] == ![]结果是什么?为什么?

JS中类型转换有哪几种?

== 和 ===有什么区别?

对象转原始类型是根据什么流程运行的?

如何让if(a == 1 && a == 2)条件成立?

什么是闭包?

闭包产生的原因?

闭包有哪些表现形式?

如何解决下面的循环输出问题?

原型对象和构造函数有何关系?

能不能描述一下原型链?

JS如何实现继承?

函数的arguments为什么不是数组?如何转化成数组?

forEach中return有效果吗?如何中断forEach循环?

JS判断数组中是否包含某个值

JS中flat—数组扁平化

数组中的高阶函数

能不能实现数组map方法 ?

能不能实现数组reduce方法 ?

能不能写一个完整的深拷贝?

数据是如何存储的?

V8 引擎如何进行垃圾内存的回收?

描述一下 V8 执行一段JS代码的过程?

宏任务(MacroTask)引入

nodejs 和 浏览器关于eventLoop的主要区别

nodejs中的异步、非阻塞I/O是如何实现的?

JS异步编程有哪些方案?为什么会出现这些方案?

能不能简单实现一下 node 中回调函数的机制?

Promise 凭借什么消灭了回调地狱?

Promise 如何实现链式调用?

现Promise的 all 和 race

解释一下async/await的运行机制

HTTP

HTTP 报文结构是怎样的?

HTTP有哪些请求方法?

GET 和 POST 有什么区别?

如何理解 URI?

如何理解 HTTP 状态码?

简要概括一下 HTTP 的特点?HTTP 有哪些缺点?

对 Accept 系列字段了解多少?

对于定长和不定长的数据,HTTP 是怎么传输的?

HTTP 如何处理大文件的传输?

HTTP 中如何处理表单数据的提交?

HTTP1.1 如何解决 HTTP 的队头阻塞问题?

对 Cookie 了解多少?

如何理解 HTTP 代理?

如何理解 HTTP 缓存及缓存代理?

为什么产生代理缓存?

源服务器的缓存控制

客户端的缓存控制

什么是跨域?浏览器如何拦截响应?如何解决?

TCP协议

能不能说一说 TCP 和 UDP 的区别?

说说 TCP 三次握手的过程?

为什么是三次而不是两次、四次?

三次握手过程中可以携带数据么?

说说 TCP 四次挥手的过程

为什么是四次挥手而不是三次?

介绍一下 TCP 报文头部的字段

说说 TCP 快速打开的原理(TFO)

说说TCP报文中时间戳的作用?

TCP 的超时重传时间是如何计算的?

说一说 TCP 的流量控制

说说 TCP 的拥塞控制?

浏览器


  • 说一说浏览器缓存?

  • 说一说浏览器的本地存储?各自优劣如何?

  • 说一说从输入URL到页面呈现发生了什么?(网络)

  • 谈谈你对重绘和回流的理解

  • 能不能说一说XSS攻击?

  • HTTPS为什么让数据传输更安全?

  • 能不能实现事件的防抖和节流?

  • 能不能实现图片懒加载?

Vue

什么是MVVM?

mvvm和mvc区别?它和其它框架(jquery)的区别是什么?哪些场景适合?

组件之间的传值?

Vue 双向绑定原理

描述下 vue 从初始化页面–修改数据–刷新页面 UI 的过程?

虚拟 DOM 实现原理

Vue 中 key 值的作用?

Vue 的生命周期

Vue 组件间通信有哪些方式?

vue 中怎么重置 data?

组件中写 name 选项有什么作用?

vue-router 有哪些钩子函数?

route 和 router 的区别是什么?

说一下 Vue 和 React 的认识,做一个简单的对比

Vue 的 nextTick 的原理是什么?

Vuex 有哪几种属性?

数据结构与算法

数据结构与算法

这一块在笔试、面试的代码题中考核较多,其中常考的数据结构主要有:数组、链表、队列、栈、Set、Map、哈希表等,不同数据结构有不同的方法以及储存原理,这些算是技术岗的必备知识。算法部分主要分为两大块,排序算法与一些其他算法题

排序算法根据考频高低主要有:快速排序、归并排序、堆排序、冒泡排序、插入排序、选择排序、希尔排序、桶排序、基数排序、Timsort这十种,这类考核点要么是算法的时间、空间复杂度、稳定度,要么是直接手写代码,故在理解算法原理的同时,对JS语言版的排序算法代码也要加强记忆。

  • 二叉树层序遍历
  • B 树的特性,B 树和 B+树的区别
  • 尾递归
  • 如何写一个大数阶乘?递归的方法会出现什么问题?
  • 把多维数组变成一维数组的方法
  • 知道的排序算法 说一下冒泡快排的原理
  • Heap 排序方法的原理?复杂度?
  • 几种常见的排序算法,手写
  • 数组的去重,尽可能写出多个方法
  • 如果有一个大的数组,都是整型,怎么找出最大的前 10 个数
  • 知道数据结构里面的常见的数据结构
  • 找出数组中第 k 大的数组出现多少次,比如数组【1,2, 4,4,3,5】第二大的数字是 4,出现两次,所以返回 2
  • 合并两个有序数组
  • 给一个数,去一个已经排好序的数组中寻找这个数的位 置(通过快速查找,二分查找)

开源分享:docs.qq.com/doc/DSmRnRG…