这是我参与更文挑战的第30天,活动详情查看: 更文挑战
一些心里话
初时看到掘金的这个更文挑战活动,觉得挺有挑战的,我也喜欢做有挑战的事情,于是便立了个 flag,我要更满 30 天挑战那个满勤奖,一个是想完成这个挑战;第二个是通过输出来倒逼输入,通过系统的整理输出来加深自己对知识点的理解。
一开始的时候我是觉得更满 30 天是没什么难度的,因为平时也有积累,在语雀知识库上面都有一百多篇的知识文档了,所以在第一天的时候就准备了 3 天的存稿,后来是觉得零零散散的发布文章不够好,不能把相关知识点系统地串起来,于是就有了专栏 《Node.js 的入门系列》、《浏览器系列》。
通过专栏系列地输出文章,把知识点串起来,我在语雀也是这么整理知识点,但是语雀是给自己看的知识库,直接搬过来到掘金怕是不行的,所以还是得做一些处理,给代码加注释,添加图片说明,查阅资料给文章添加一些深度,期间还学会了用 PPT 做动画效果。于是存稿从一开始到还有三、四篇,到后来剩一、两篇,最后几天的文章都得当天整理输出。
不过还好,算上这篇文章,我算是达到满勤的目标了。另外通过输出,我也算是加深了对相关知识点的理解了,也希望我的文章能对你有所帮助,觉好留赞,哈哈。
六月更文目录
专栏目录
JS 基础知识收录文章
《JS 的原型和原型链》:从原型和原型链所涉及的专业名词开始,带你一步一步去理解原型和原型链。
《JS 的 new 做了哪些事情呢?》:介绍了 new
一个对象的过程中做了哪些事情,最后还手写实现了一个 new
的功能。
《JS 的继承方式》:本篇文章介绍了五种继承方式:原型链继承、借助构造函数继承、组合继承、寄生组合继承、Class
继承,相信你还知道其它的继承方式。
Node.js 的入门系列收录文章
这个专栏是在极客时间学习杨浩老师的《Node.js 开发实战》的成果,让我对 Node.js 有了一个初步的整体概念,对我的帮助是非常大的。
《Node.js 入门系列(一)初识 Node》:Node.js 并不难学,它是运行在服务端的 JavaScript,如果你熟悉 Javascript,那么你将会很容易的学会 Node.js。
《Node.js 入门系列(二)Node 模块》:模块规范是构建一个大型 Node.js 应用的基础,所以非常重要。
《Node.js 入门系列(三)Node 异步》:关于 Node.js 异步,绕不开两点:非阻塞 I/O 和事件循环。也正是因为这两点,Node.js 才能被称为高性能并运用到线上环境中。
《Node.js 入门系列(四)HTTP 服务》:可以利用 Node.js 搭建一个简单的 HTTP 服务器来试着操纵计算机资源。
《Node.js 入门系列(五)石头剪刀布小游戏》:利用 Node.js 开发一个石头剪刀布小游戏。
《Node.js 入门系列(六)网页版石头剪刀布小游戏》:把石头剪刀布游戏改造成网页版本。
《Node.js 入门系列(七)Express 框架》:来了解 Node.js 的中间件概念,了解 Express 框架,并用该框架改造这个石头剪刀布游戏。
《Node.js 入门系列(八)Koa 框架》:来看看 Koa 框架和 Express 框架有什么不同,然后用 Koa 框架对石头剪刀布游戏进行改造。
《Node.js 入门系列(九)阶段总结》:对 Node.js 入门系列做一个阶段总结,划重点。
浏览器系列收录文章
《浏览器的兼容问题及解决方案整理》:对浏览器的兼容问题及解决方案整理,了解浏览器、了解兼容问题,提供解决兼容问题的思路,并提供一些关于 JS 兼容、CSS 兼容的介绍及解决方案!文章非常长,强烈建议收藏,但是不希望你用到这份方案。
《浏览器知识点整理(一)开篇》:这篇文章是对浏览器知识点整理的开篇概述,带着问题去思考、去整理。
《浏览器知识点整理(二)事件机制》:这篇文章主要介绍了 DOM 是什么,怎么查找 DOM 元素,了解事件是怎么触发的,怎么去注册事件和怎么实现事件代理。
《浏览器知识点整理(三)存储》:这篇文章整理浏览器的存储知识,主要是 Cookie、localStorage、sessionStorage、indexedDB 等存储方式的介绍。
《浏览器知识点整理(四)网络协议》:主要介绍一些相关的网络协议,主要是 IP 协议、UDP 协议、TCP 协议、HTTP 协议和其它协议,还介绍了数据包传输的流程。
《浏览器知识点整理(五)多进程架构》:浏览器有很多功能,比如网络请求、页面渲染、JavaScript 执行和 Web 安全防范等等,而这些功能是分散在浏览器的各个功能组件中的,比较多也比较散,那么通过学习浏览器的多进程架构来把这些知识点串起来是很有必要的。
《浏览器知识点整理(六)导航流程》:了解了浏览器的 导航流程,就可以来回答 “从输入 url
按下回车到页面展示的过程中发生了什么?”这道经典问题的前半部分了,即 从用户发出 url
请求到页面开始解析的这个过程,也就是网络请求部分。
《浏览器知识点整理(七)渲染流程》:从输入 url
按下回车到页面展示的过程中发生了什么?这个问题的后半部分,浏览器详细的渲染流程:构建 DOM 树、样式计算、获取布局树、生成图层树、图层绘制、栅格化处理、合成显示。
《浏览器知识点整理(八)DOM 和 JS、CSS 不得不说的故事》:这篇文章带你了解 DOM、JS、CSS 三者的爱恨情长:DOM树是怎么生成的?解析 HTML 时遇到了 JS 会怎么样?JS 遇到了 CSS 又会怎么样?为什么要把 CSS 放头部和把 JS 放尾部?
《浏览器知识点整理(九)重排、重绘、合成是怎么回事?》:这篇文章来看看在渲染流水线视角下面的重排、重绘和合成是怎么一回事,然后来了解怎么通过减少重排和重绘来提高性能。
《浏览器知识点整理(十)我们常说的 JS 引擎是什么?》:这篇文章简单的介绍了 JS 引擎是什么,以及简单的介绍了 V8 执行一段 JavaScript 代码的过程,希望可以让你对 JS 引擎这个黑盒子有一定的了解。
《浏览器知识点整理(十一)JavaScript 的垃圾数据是怎么回收的?》:这篇文章的重点是 JavaScript 引擎的垃圾回收机制,先了解数据存放在哪里,然后带你了解在不同的存放位置的垃圾数据是怎么回收的。
《浏览器知识点整理(十二)事件循环机制(Event Loop)》:Event Loop 是一个很重要的概念,指的是计算机系统的一种运行机制,JavaScript 语言就采用这种机制,来解决单线程运行带来的一些问题。
《浏览器知识点整理(十三)不同的回调执行时机:宏任务和微任务》:这篇文章主要介绍了在页面循环角度下异步回调的两个执行时机的区别,深入浅出的带你去理解宏任务和微任务这两个任务的区别。
《异步编程 Promise:从使用到手写实现(4200字长文)》:这篇文章介绍了 Promise
如何解决回调地狱的问题,了解 Promise
和微任务的渊源,然后带你一步一步的解构手写实现一个简单的 Promise
,最后简单介绍并手写实现了一些 Promise
的 API,包括 Promise.all
、Promise.allSettled
、Promise.race
、Promise.finally
等API。
《异步编程的终极解决方案 async/await:用同步的方式去写异步代码》:这篇文章介绍了异步编程的发展过程,通过详细解析 Generator
生成器和协程来帮助理解 async
/await
内部的实现原理,希望能对你有所帮助。
《Event Loop :你知道它们的打印顺序吗?》:这篇文章收集了一些关于 Event Loop 的打印面试题,在浏览器和在不同版本的 Node.js 都打印看了看,结果是有些出乎意料喔。
写在最后
今天是六月的最后一天,也是上半年的最后一天,终于是结束了上半年的单身生活,准备开始下半年的单身生活,只有代码愿意一直陪着我,哭!
明天会更好,加油,诸君共勉!