从 2021 年 5 月 9 号开始更新《前端百题斩》,目前终于获得了阶段性成绩,《前端百题斩》上册曾经更新结束,内容包含 JS 根底篇、浏览器篇、网络篇,共计 50 个章节,5 万多字。
写这个系列的文章是有肯定原因的,遐想公瑾当年,小乔初嫁了(额,跑题了),作为一个机械业余出身的程序猿【(>‿◠))】,深知自学的苦楚与无助,迫切希望有一本零碎的前端学习面试笔记,全面理解和把握前端高频知识点。联合四年多的自学教训,我开始着手更新《前端百题斩》系列文章,对高频的前端常识要点进行提炼和总结,融入集体的思考,心愿对每位如我当年一样的前端初学者有所助益,互相学习,共同进步!
一、前端百题斩思维导图
上面来看看《前端百题斩》上册的思维导图,通过该思维导图就能够理解其次要知识点,对面试的要害脉络有清晰的意识。
二、内容概要
1. typeof 与 instanceof
typeof 和 instanceof 是 js 中的两个要害运算符,用于判断变量类型,通过本节能够理解两者的应用、原理,并通过实践与实际相结合验证其原理。
2. js 中的六种申明变量的形式
js 中共有 6 种申明变量的形式,别离为 var、let、const、function、class、import,通过本节将理解该六种形式的应用及其相应特点。
3. 根本类型和援用类型
通过本节将理解到根本类型和援用类型蕴含的内容有哪些以及它们的特点是什么。
4. 包装对象
通过本机将理解字符串、数字、布尔值为什么可能调用属性和办法,其后盾对象执行流程是什么。
5. 遍历对象属性的办法
对象是在编程中最常见的局部,很多状况下须要遍历该对象上的属性,那么有几种形式能够帮忙咱们遍历该对象上的属性呢?通过本节将理解九种办法。
6. JavaScript 字符串转数字的形式
js 中字符串转数字次要有三种形式:利用转换函数、强制类型转换、利用 js 变量弱类型转换, 通过本节将理解这三种形式。
7. 判断 js 数据类型的四种办法
js 有多种数据类型(Number(数值)、String(字符串)、Boolean(布尔值)、Null、Undefined、Symbol、Object、函数等), 通过本节的四种判断办法完满解决类型判断问题。
8. JavaScript 代码的执行过程
在 V8 中,JavaScript 是如何进行执行的?何时生成执行上下文?js 执行过程中存在机器码吗?通过本节将对这些问题有一个残缺的理解。
9. 函数执行过程
js 中一个函数是如何执行的,其蕴含确定执行环境、创立阶段、执行阶段、执行结束期待被回收的过程,通过本节将对整个过程有一个残缺理解。
10. 执行上下文
通过本文将理解执行上下文的类型、蕴含内容、执行上下文生命周期、代码执行过程等内容,对执行上下文有一个残缺的理解。
11. 变量对象
通过本文将理解变量对象的创立过程、变量对象与流动对象的关联以及全局上下文变量对象。
12. 作用域及作用域链
通过本文将理解什么是作用域以及作用域链,并通过实战将这些概念串联起来。
13. 闭包
通过本文将理解闭包的定义、实现、用处、优缺点以及一些经典的面试问题。
14. this
通过本文将理解什么是 this、this 的作用是什么、this 的指向是什么、如何扭转 this 指向等要害知识点,一次性将 this 理解分明。
15. call、apply、bind 实现
通过本文将理解扭转 this 指向的三个办法 call、apply、bind 的基础知识和相应的实现原理。
16. 原型 / 构造函数 / 实例
通过本文将理解什么是原型、什么是构造函数、什么是实例,从而进一步理解三者之间的关系。
17. 原型链
通过本文将理解什么是原型链、原型链的查找流程是什么,进一步可原型链中属性的查找和批改机制。
18. new 操作符
new 的作用是通过构造函数来创立一个实例对象, 那么 new 过程中产生了什么呢?通过验证的形式测试这样验证点,从而实现一个 new 操作符。
19. 数组中的三个办法实现原理
数组中有三个罕用办法:map、filter、reduce,那么这三者的实现原理呢?通过本文你将有一个深刻理解。
20. 五种形式实现数组中的 flat 办法
ES6 中新增了 flat 这个办法,该办法会依照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回,那么不反对该办法的环境中该如何解决呢?本文将用五种形式来进行实现。
21. 防抖与节流
性能始终是前端陈词滥调的一个话题,其中有一个性能问题就是咱们会频繁的触发一些事件,例如 mousemove、scroll、resize 等,尽管浏览器曾经对这些事件的触发做了一些优化,然而如果在很短的工夫内频繁的触发依然会影响性能,这个时候就须要本文的配角:防抖和节流,利用它们来进行优化,进步性能。
22. 三种形式将一个字符串转换成驼峰模式
置信大家都遇到过这样一个问题:将 ’-‘ 连贯的字符串转换为驼峰模式,例如将 hello-word 转换为 helloWorld。这个问题尽管简略,然而如果仅仅用一种计划进行解决不能体现 出本人的能力,如果要想体现的不同凡响,就要用多种形式解决。本文就通过三种形式解决该问题。
23. 赋值、浅拷贝、深拷贝
不论是面试还是工作中,常常会遇到三种数据操作形式:赋值、浅拷贝、深拷贝,如果不将这三种搞清楚,很容易会让零碎遇到 bug,本文将具体介绍这三者。
24. 六种异步计划
为了进步零碎性能,引入了异步,那么有哪些异步解决方案呢?本文将带你理解六种异步计划:回调函数、事件监听、公布订阅模式、Promise、Generator、async。
25. Promise 原理及实现
Promise 在编程中用常常应用,然而很多状况下对其只限于会应用,但并没有进一步理解,通过本文将理解什么是 Promise、其优缺点是什么、该对象又有什么特点、如何依据 Promise/A+ 标准实现 Promise 等。
26. Async 原理实现
在开发过程中罕用的另一种异步计划莫过于 Async,通过 async 函数的引入使得异步操作变得更加不便, 通过本文将理解 Async 的实现原理。
27. 公布 / 订阅实现
公布 / 订阅模式在观察者模式的根底上,在指标和观察者之间减少一个调度核心。订阅者(观察者)把本人想要订阅的事件注册到调度核心,当该事件触发的时候,发布者(指标)公布该事件到调度核心,由调度核心对立调度订阅者注册到调度核心的解决代码。通过本文将从零到一四线公布 / 订阅模式。
28. 七种排序算法
通过本文将通过七种排序算法实现排序,这七种排序算法别离是:冒泡排序、抉择排序、插入排序、归并排序、疾速排序、堆排序、桶排序。
29. 浏览器的存储
通过本文将理解浏览器反对的五种存储形式:localStorage、sessionStorage、IndexedDB、WebSQL、Cookie。
30. 刨根问底为跨域分类
通过本文将理解同源策略是如何在 DOM 层面、数据层面、网络层面保障浏览器安全性的,然而限度过多则会让程序员的开发工作举步维艰,所以浏览器须要在最严格的同源策略限度下做一些退让,这些退让更多了是在安全性与便捷性的衡量,跨域解决方案就是出让一部分安全性进步开发便捷性。
31. 浏览器出让安全性造就 JSONP
通过本文将理解 JSONP 的根本思维、实现原理,并依据该原理实现 JSONP。
32. 一文理解 CORS
通过本文将通过实践与实际相结合的形式帮忙理解 CORS,用不一样的形式加深对 CORS 的了解。
33. 浏览器中的三类五种申请
通过浏览器的控制台能够看到拜访一个页面的时候会发动多个申请,并且这一系列申请会被分为多个类别,本文通过总结将该申请分为三类五种:个别申请、Ajax 申请(XHR、Fetch、Axios)、WebSocket 申请。
34. 浏览器过程有哪些
通过本文将理解多过程浏览器蕴含的过程类型:浏览器过程、渲染过程、GPU 过程、网络过程、插件过程。
35. 浏览器的渲染流程
通过本文将理解浏览器的渲染流程,次要蕴含构建 DOM 树、款式计算、布局阶段、分层、图层绘制、分块、栅格化操作、合成和显示。
36. 重绘和回流
“重绘和回流”就会导致浏览器触发更新,从新进行渲染绘制,通过本文将理解这两者,并摸索缩小重绘和回流的解决方案。
37. 事件循环
通过本文将理解工作分类(狭义分类、准确分类)、事件循环流程(同步和异步角度、宏工作和微工作角度),进一步通过一道高频面试题理解事件循环。
38. 网络体系结构
通过本文将理解网络体系结构的划分规范以及七层体系结构中各层的作用。
39. HTTP0.9——HTTP3.0 进化史
通过本文将理解 HTTP 进化史,整个流程蕴含:HTTP/0.9、HTTP/1.0、HTTP/1.1、HTTP/2.0、HTTP3.0。
40. HTTP 缓存机制
通过本文将理解 HTTP 的缓存机制,蕴含强缓存和协商缓存。
41. 强缓存引起的问题及解决方案
强缓存的资源因为不会向服务器发动验证,所以存在一些问题,即公布时资源更新问题,更新了资源,然而用户每次申请时仍然从缓存中获取原来的资源,除非用户革除或者强刷新,否则看不到最新的成果, 通过本文将摸索其解决方案计划。
42. 浏览器中申请内容的起源
关上浏览器开发者工具的 Network,察看 Size 列常常看到三种状况:memory cache、disk cache、资源自身大小, 通过本文将理解其类型含意及资源查找流程。
43. TCP 和 UDP 的区别
通过本文将五个方面比照 TCP 和 UDP(连贯方面、数据传输可靠性方面、实时性方面、连贯数量方面、资源需要方面)。
44. TCP 中流量管制和拥塞管制
通过本文将理解 TCP 中的两个重要策略:流量管制、拥塞管制,并进一步比照两者的区别。
45. TCP 中三次握手和四次挥手全过程
通过本文将理解 TCP 中三次握手和四次挥手全过程。
46. HTTP 协定中的申请报文和响应报文组成
通过本文将理解 HTTP 协定中的申请报文和响应报文的组成,不便在调试程序中读懂其申请和响应内容的含意。
47. 状态码 301 和 302 的区别
301 和 302 状态码均表征重定向,通过本文将具体理解这两个状态码及相应的区别。
48. HTTPS 那些事
本文将从 HTTP 的毛病为切入点,进一步理解 HTTPS 的各个关键技术点及整个流程。
49. 两种攻击方式(XSS、CSRF)
通过本文将理解面试中常见的攻击方式有两种:XSS、CSRF。
50. 从浏览器输入一个 url 到页面展现都经验了什么
本文将通过十五张图来具体常数从浏览器输出一个 url 到页面展现全流程。
1. 如果感觉这篇文章还不错,来个分享、点赞吧,让更多的人也看到
2. 关注公众号执鸢者,获取《前端百题斩》上册 pdf 版