关于用设计模式刷 LeetCode 这件事

2020-04-06
阅读 4 分钟
1.2k
最近在过 《剑指Offer》 这本书上的题,尽量把每题的多种解法都自己捋一遍,在过到 面试题20. 表示数值的字符串 这一题的时候,Discuss 里有一个同学提出了 职责链模式 的解法,让人眼前一亮,另一方面是笔者最近刚用 职责链模式解决了一些问题,于是决定用 JavaScript 重构一版题解,再熟悉熟悉这个设计模式。

【详细笔记】JavaScript数字类型详解

2020-04-04
阅读 9 分钟
1.7k
这是一篇偏综合性的总结,根据笔者的 routine 整理好的,并对代码进行了改进。以下内容出处均已在 参考资料 中列出,如有侵权,联系笔者删除。

【重学数据结构与算法(JS)】字符串匹配算法(四)——Sunday算法

2020-01-24
阅读 3 分钟
1.5k
前言 惯例,最重要的匹配思路还是要贴一遍: 将模式串和主串进行比较 从前往后比较 从后往前比较 匹配时,比较主串和模式串的下一个位置 失配时, 在模式串中寻找一个合适的位置 如果找到,从这个位置开始与主串当前失配位置进行比较 如果未找到,从模式串的头部与主串失配位置的下一个位置进行比较 在主串中找到一个合适...

【重学数据结构与算法(JS)】字符串匹配算法(三)——BM算法

2020-01-20
阅读 3 分钟
3.6k
前言 文章的一开头,还是要强调下字符串匹配的思路: 将模式串和主串进行比较 从前往后比较 从后往前比较 匹配时,比较主串和模式串的下一个位置 失配时, 在模式串中寻找一个合适的位置 如果找到,从这个位置开始与主串当前失配位置进行比较 如果未找到,从模式串的头部与主串失配位置的下一个位置进行比较 在主串中找到...

【重学数据结构与算法(JS)】字符串匹配算法(二)——KMP算法

2020-01-18
阅读 5 分钟
1.7k
前言 在上一篇文章字符串匹配算法(一)——BF算法提到过,字符串匹配的思路是固定的: 将模式串和主串进行比较 从前往后比较 从后往前比较 匹配时,比较主串和模式串的下一个位置 失配时, 在模式串中寻找一个合适的位置 如果找到,从这个位置开始与主串当前失配位置进行比较 如果未找到,从模式串的头部与主串失配位置的下...

【重学数据结构与算法(JS)】字符串匹配算法(一)——BF算法

2020-01-12
阅读 3 分钟
2k
一切都要从 LeetCode 的第 28 题 实现 strStr()开始说起,当自己脑子里的第一种暴力查找法写出来并 AC 之后,还是觉得不满足,决定把能找到的解法都理解了,于是便有了这个系列。

【详细笔记】前缀、中缀以及后缀表达式 (JS Version)

2019-12-29
阅读 4 分钟
3.1k
最近开始刷题,真实地解决了大学时期“这黑窗口敲来敲去做数学题有卵用?”的困惑。有些东西之前学过,现在忘了,但是正是因为学过,所以再学一遍就变得效率很高(但是我还是不认可大学的学科教学顺序)。废话不多说,这篇博客只是一个笔记,希望之后有了更深的认识能够完善。

手撕源码系列 —— 函子 + 观察者模式 + 状态 = Promise

2019-12-15
阅读 13 分钟
2.2k
前段时间太忙,隔了快一个月没写博客,但是 Promise 其实很早之前就已经总结了一波如何实现,但是那个时候纯粹是为了实现而实现,没有去细品其中的一些巧妙设计,直到最近在进行函数式编程相关的知识学习时,无意中在查阅资料的时候发现,Promise 和 Functor 居然有着千丝万缕的关系,这让我决定要重新审视一下自己对 Pr...

从 Prototype 开始说起(下)—— ES6 中的 class 与 extends

2019-11-17
阅读 10 分钟
3.7k
何为 class 众所周知,JavaScript是没有类的,class也只是语法糖,这篇文章旨在于理清我们常常挂着嘴边的语法糖,究竟指的是什么。 ES6 与 ES5 写法对比 {代码...} 这是一个很完整的写法,我们已经习惯于这么方便地写出一个类了,那么对应到 ES5 中的写法又是如何呢 {代码...} 可以很清晰地看到 ES6 中 Parent 类的 cons...

从 Prototype 开始说起(上)—— 图解 ES5 继承相关

2019-11-16
阅读 4 分钟
1.7k
Prototype 与 __proto__ 我们先写下一行代码: {代码...} 当我们写下这简单的一行代码时,实际上发生了两件事情 创建了一个构造函数 Parent 创建了一个原型对象 prototype 如下图: 构造函数 Parent 中 有一个 prototype 的属性指向 Parent 的 原型对象 prototype 原型对象 prototype 则有一个 constructor 的属性 指向...

手撕源码系列 —— lodash 的 debounce 与 throttle

2019-11-10
阅读 6 分钟
3.4k
前言 debounce 和 throttle 相信大家并不陌生,我猜想过去,FEer 对它们的了解大概分为以下几个阶段: 没听说过的 听说过的 了解原理但是徒手写不出来的 能写出最基本的实现的 能理解并写出 lodash 这种稍微复杂一点实现的 当然,在第三个阶段的人应该占绝大多数,当我还在第三阶段的时候,就希望有一篇技术文章,能让我...

基于 ES6 的 Proxy ,100行代码实现一个 XMLHttpRequest 的拦截核心 ajax-proxy

2019-11-02
阅读 3 分钟
3.1k
前一段时间,项目在对 WKWebview 进行适配时,接触到了公共能力组使用的 Ajax-hook 方案,于是便对它的怎么实现的很感兴趣,到网上查资料学习时,找到了作者 @wendux 的 Ajax-hook原理解析 这篇文章,当时边看脑子里就边想:“卧槽,这种骚操作怎么感觉 Proxy 也能来一波!”。等看到这篇文章的评论区有个老哥 @银冰雪千载...