深入Promise 发表于 2018-11-07 | 分类于 JavaScript 深入PromisePromise/A+规范 Promise 规范有很多,如 Promise/A,Promise/B,Promise/D 以及 Promise/A 的升级版 Promise/A+,有兴趣的可以去了解下,最终 ES6 中采用了 Promise/A+ 规范。在讲解 Promise 实现之前,当然要先了解 Promise/A+ 规范。Promise/A+ 规范参考: 阅读全文 »
字符串模式匹配算法——BF和KMP算法 发表于 2018-11-07 | 分类于 算法与数据结构 字符串模式匹配算法——BF和KMP算法 在字符串S中定位/查找某个子字符串P的操作,通常称为字符串的模式匹配,其中P称为模式串。模式匹配有多种算法,这里我先看一下最常见的BF算法和KMP算法。 阅读全文 »
堆与堆排序 发表于 2018-10-23 | 分类于 算法与数据结构 堆与堆排序 堆(英语:heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。堆总是满足下列性质: 堆中某个节点的值总是不大于或不小于其父节点的值 堆总是一棵完全二叉树 将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。本篇博文我们来使用JavaScript来构建一个堆,并实现堆排序。 阅读全文 »
常见排序算法 发表于 2018-10-20 | 分类于 算法与数据结构 常见排序算法 算法与数据结构是我们计算机开发与学习中重要的基础,是每个开发者都应熟练掌握的内功,本篇博文主要记录一下常见的排序算法以及优化策略。 阅读全文 »
JavaScript作用域与闭包 发表于 2018-10-10 | 分类于 javascript JavaScript作用域与闭包JavaScript作用域问题 JavaScript 有个特性称为作用域。尽管对于很多开发者来说,作用域的概念不容易理解,但它确实是JavaScript这门语言中非常重要的一个概念。理解作用域能让你编写更优雅、错误更少的代码,并能帮助你获得更好的开发体验。 阅读全文 »
JavaScript深拷贝探究 发表于 2018-09-27 | 分类于 javascript JavaScript深拷贝1、JavaScript数据类型 JavaScript数据类型分为两类:基本数据类型(也被称为原始类型 primitive type)和对象类型(也被称为引用数据类型 object type) 其中基本数据类型包括:null、boolean、undefined、string、number、symbol 引用数据类型包括:Array、Object、Function、Date等 阅读全文 »
JavaScript类型问题 发表于 2018-09-26 | 分类于 javascript JavaScript类型问题 JavaScript 类型的问题其实是个挺折磨人的话题, 不然也不会有 TypeScript 出现了。此篇博文主要记录与此相关的一些问题。有兴趣研究的同学可以去阅读 lodash 的源代码,学习在这种成熟的JS库中是如何处理类型问题以及如何进行类型判断的。 阅读全文 »