“ 做前端这么久了,想必大家肯定对数组原型链上面的reduce或多或少有了解,其实最开始学习前端的时候对reduce可能就停留在求和这一类的思考上,今天我就来带领大家走进reduce的世界,reduce能做的事情可真的多,唉呀妈呀真香” 1. reduce的回顾和它原理 首先我们先来回顾一下reduce的用法。 reduce接收两个参数: (1)第一个参数是 callback 回调函数(必填); callback回调函数中又会接收
“ 在上一章节中介绍了观察者模式和发布订阅模式的概念和区别,接下来在这篇文章中我将带领大家自己手动封装这两种模式,其实它们的封装是很简单的。” 如果你没有看过上一篇关于观察者模式和发布者模式的概念和区别,那么你可以转至下面这篇链接,然后看完之后再来回顾这篇文章,效果可能会更好哟!你真的了解观察者模式和发布订阅模式? 1. 观察者模式的封装在写观察者模式之前,我们需要把思路滤一下: 首先我们应该封装Subject被观察者类、Observe
“ 在学习或者工作中,你肯定听说过观察者模式和发布订阅模式,大部分的人都会将这两混为一谈,然而你真的了解它们吗?” 1. 观察者模式vs发布订阅模式不得不说它们两看起来很相似,在之前我一直认为发布+订阅=观察者模式,即发布可以称为主题(Subject),订阅可以称为观察者(Observer)。但是从实现角度看其实是不同的。首先先来看一下观察者模式和发布订阅模式的流程图,放一张在网上找到的图: 观察者模式和发布订阅模式流程图 (1)从上
“晚上下班回家,时间充裕的情况下会看react的源码,虽然感觉看的时候就像屎山。今天就来讲解一下PureComponent和Component究竟有什么区别,其实就是带领大家了解一下相关的源码涉及到什么。” 1. 区别在讲解源码之前,首先我们需要会用,然后在熟悉之后才来说了解源码。 首先讲一下它们之间的区别。当使用Component时,父组件的state或者props更新时,无论子组件的state或者props是否更新,都会导致子组件的
“ 在很早的一篇文章中我提到过我们公司使用node作为中间件,其中node作为中间件很重要的一点就是作为日志使用,日志的打印是需要经过node,也就意味着请求或者响应时都需要经过node。有趣的一点是在一次做项目时看到前端请求node之后不经后端直接打印日志,这种情况也是很常见的一种,可以理解为此时node在做为后端,日志的作用在于方便线上出问题好排查以及定位点。” 温馨提示:看这篇文章是默认你会node的哟。 1. sendBeaco
“ 在之前分享了什么是单向链表以及如何来实现它,今天我们接着来完善它,可能有点多,希望小伙伴们耐心看,当然有不懂可以在下面留言,我看到之后会尽力回答小伙伴们的问题(技术有限,哈哈哈)。话不多说冲冲冲。” 1. 链表的查找首先我们来实现一下链表的查找,查找是很简单的,创建一个新节点,将头节点赋值给新节点,如果找到的话就返回保存该节点的数据,否则就调用next找下一个节点直到找到,如果最后循环完都没有找到就返回null。可能文字描述有点绕,
“ 今日不做算法,来一个轻松一点的,用js如何实现链表,话不多说进入正题。” 1. 什么是单向链表先来思考一下什么是链表?第一时间我们可能会联想到数组,但是数组是存储在特定索引中,而链表每一个元素都是一个独立的对象,每个元素(节点)包含存储的数据以及指向下一个引用的next链接,看下面的一张图你就大致懂单向链表的构造了。 单向链表构造图 这个时候你可能比较好奇为什么会定义一个head头部?因为开始结点无前驱,所以设头指针head指向开始
“ 趁着周末,继续分享算法题,这道题也是易考题之一,想必大家在很多题中可能都会有些印象,话不多说大家一起进入正题吧。” 1. 题目描述老规矩,先看如下题目(leetcode 88题),先自己思考思考动手写一写,在第二段中我会给出相关解题步骤: 题目描述 2. 题解思路在这里其实我会猜你用sort方法来进行求解,答案肯定是不行的。那么该如何求解呢?首先我们应该在题目中去找关键点,在这里注意抓关键字:有序数组。一般涉及到有序数组的,我们会第
“ 最近由于公司项目多,搁置了文章算法分享,扶我起来我还能再写,话不多说进入今日分享算法。” 1. 链表中倒数第k个节点老规矩,链表在这里我就不介绍了,不懂的可以去网上搜索看相关的文章之后再来做这道题,先把题目给大家看看,如下所示:剑值offer-题号22 友情提示:在这里的时候希望小伙伴先不要往下翻,先想想思路然后再看我接下来的分析。 2. 题解思路这一类的题我们很快就会联想到快慢指针,当时切入点是什么呢?如何和快慢指针进行联系呢?不
“ 近期看到一个关于快手社招前端的面试题,内容是完善add、one、two方法来实现add(one(two()))和add(two(one))打印的值都为3。” 1. 面试题目题目:请补充下面的代码,代码如下所示: 12345678function add() {}function one() {}function two() {}console.log(add(one(two
And we should call every truth false which was not accompanied by at least one laugh