加载中
JS作用域和变量提升看这一篇就够了

作用域是JS中一个很基础但是很重要的概念,面试中也经常出现,本文会详细深入的讲解这个概念及其他相关的概念,包括声明提升,块级作用域,作用域链及作用域链延长等问题。 什么是作用域 第一...

01/19 10:43
1.9K
轻松理解JS中的面向对象,顺便搞懂prototype和__proto__

这篇文章主要讲一下JS中面向对象以及 proto,ptototype和constructor,这几个概念都是相关的,所以一起讲了。 在讲这个之前我们先来说说类,了解面向对象的朋友应该都知道,如果我要定义一个...

setTimeout和setImmediate到底谁先执行,本文让你彻底理解Event Loop

笔者以前面试的时候经常遇到写一堆setTimeout,setImmediate来问哪个先执行。本文主要就是来讲这个问题的,但是不是简单的讲讲哪个先,哪个后。笼统的知道setImmediate比setTimeout(fn, 0)先执...

this到底指向啥?看完这篇就知道了!

JS中的this是一个老生常谈的问题了,因为它并不是一个确定的值,在不同情况下有不同的指向,所以也经常使人困惑。本篇文章会谈谈我自己对this的理解。 this到底是啥 其实this就是一个指针,它...

2020/12/29 14:33
5.3K
Redux异步解决方案之Redux-Thunk原理及源码解析

前段时间,我们写了一篇Redux源码分析的文章,也分析了跟React连接的库React-Redux的源码实现。但是在Redux的生态中还有一个很重要的部分没有涉及到,那就是Redux的异步解决方案。本文会讲解...

2020/09/09 10:33
626
手写React的Fiber架构,深入理解其原理

熟悉React的朋友都知道,React支持jsx语法,我们可以直接将HTML代码写到JS中间,然后渲染到页面上,我们写的HTML如果有更新的话,React还有虚拟DOM的对比,只更新变化的部分,而不重新渲染整...

不知道怎么封装代码?看看这几种设计模式吧!

为什么要封装代码? 我们经常听说:“写代码要有良好的封装,要高内聚,低耦合”。那怎样才算良好的封装,我们为什么要封装呢?其实封装有这样几个好处: 封装好的代码,内部变量不会污染外部...

从发布订阅模式入手读懂 Node.js 的 EventEmitter 源码

前面一篇文章setTimeout和setImmediate到底谁先执行,本文让你彻底理解Event Loop详细讲解了浏览器和Node.js的异步API及其底层原理Event Loop。本文会讲一下不用原生API怎么达到异步的效果,...

02/03 13:43
1.8K
轻松理解 HTTP 缓存策略

上一篇文章我写了koa-static的源码解析,其中用到了HTTP的缓存策略,给返回的静态文件设置了一些缓存的头,比如Cache-Control之类的。于是我就跟朋友讨论了一下HTTP的缓存策略: 朋友说:“H...

2020/12/22 14:42
2.8K
不知道怎么提高代码质量?来看看这几种设计模式吧!

提高代码质量的目的 程序猿的本职工作就是写代码,写出高质量的代码应该是我们的追求和对自己的要求,因为: 高质量的代码往往意味着更少的BUG,更好的模块化,是我们扩展性,复用性的基础 ...

手写Express.js源码

上一篇文章我们讲了怎么用Node.js原生API来写一个web服务器[1],虽然代码比较丑,但是基本功能还是有的。但是一般我们不会直接用原生API来写,而是借助框架来做,比如本文要讲的Express。通过...

手写Koa源码

用Node.js写一个web服务器,我前面已经写过两篇文章了: •第一篇是不使用任何框架也能搭建一个web服务器,主要是熟悉Node.js原生API的使用:使用Node.js原生API写一个web服务器[1]•第二篇文...

手写@koa/router源码

上一篇文章我们讲了Koa的基本架构[1],可以看到Koa的基本架构只有中间件内核,并没有其他功能,路由功能也没有。要实现路由功能我们必须引入第三方中间件,本文要讲的路由中间件是@koa/rout...

速度提高几百倍,记一次数据结构在实际工作中的运用

这段时间写了一堆源码解析,这篇文章想换换口味,跟大家分享一个我工作中遇到的案例。毕竟作为一个打工人,上班除了摸鱼看源码外,砖还是要搬的。本文会分享一个使用恰当的数据结构来进行性能...

01/06 11:07
8.5W
使用mono-repo实现跨项目组件共享

本文会分享一个我在实际工作中遇到的案例,从最开始的需求分析到项目搭建,以及最后落地的架构的整个过程。最终实现的效果是使用mono-repo实现了跨项目的组件共享。在本文中你可以看到: 从接...

不知道怎么提高代码可扩展性?来看看优秀框架源码中的这几种设计模式吧!

为什么要提高代码扩展性 我们写的代码都是为了一定的需求服务的,但是这些需求并不是一成不变的,当需求变更了,如果我们代码的扩展性很好,我们可能只需要简单的添加或者删除模块就行了,如...

没有更多内容

加载失败,请刷新页面

没有更多内容

返回顶部
顶部