摘要: 手写 Promise 源码之实现 then 方法的链式调用(二) 场景 在链式调用 then 方法中,可以返回普通值,也可以返回 promise 对象 const MyPromise = require('./myPromise') let promise = new MyPromise((reso 阅读全文
posted @ 2022-06-26 17:31 小小紫苏 阅读(228) 评论(0) 推荐(0)
摘要: 手写 Promise 源码之实现 then 方法的链式调用(一) 场景 const MyPromise = require('./myPromise') let promise = new MyPromise((resolve, reject) => { // setTimeout(() => { 阅读全文
posted @ 2022-06-26 16:58 小小紫苏 阅读(93) 评论(0) 推荐(0)
摘要: 手写 Promise 源码之实现多次调用添加多个处理函数 场景 const MyPromise = require('./myPromise') let promise = new MyPromise((resolve, reject) => { setTimeout(() => { resolve 阅读全文
posted @ 2022-06-26 16:38 小小紫苏 阅读(57) 评论(0) 推荐(0)
摘要: 手写 Promise 源码之在 Promise 类中加入异步逻辑 测试代码 在执行器中加入异步代码,由于异步代码要在主线程的代码完毕后才会执行,所以第18号代码 then() 会马上执行,此时在 promise 的状态为 pending,那么需要在 then 方法中增加对等待状态相关的处理代码。 c 阅读全文
posted @ 2022-06-26 16:30 小小紫苏 阅读(39) 评论(0) 推荐(0)
摘要: 手写 Promise 源码之核心逻辑实现 需求分析 Promise 就是一个类,在执行这个类的时候,需要传递一个执行器进去,执行器会立即执行 Promise 中有三种状态,分别为:成功 fullilled 失败 rejected 等待 pending pengding → fulfilled pen 阅读全文
posted @ 2022-06-26 15:44 小小紫苏 阅读(37) 评论(0) 推荐(0)
摘要: 函数式编程之函数组合和 Functor(函子) 函数组合 纯函数和柯里化很容易写出洋葱代码h(g(f(x))) 获取数组的最后一个元素再转换成大写字母,_.toUpper(_.first(_.reverse(array))) 函数组合可以让我们把细粒度的函数重新组合生成一个新的函数 管道 下面这张图 阅读全文
posted @ 2022-06-23 18:44 小小紫苏 阅读(176) 评论(0) 推荐(0)
摘要: 函数式编程之纯函数和柯里化 为什么要学习函数式编程 函数式编程是非常古老的一个概念,早于第一台计算机的诞生,函数式编程的历史。 那我们为什么现在还要学函数式编程? 函数式编程随着 React 的流行受到越来越多的关注 Vue3 也开始拥抱函数式编程 函数式编程可以抛弃 this 打包过程中可以更好的 阅读全文
posted @ 2022-06-22 18:37 小小紫苏 阅读(95) 评论(0) 推荐(0)
摘要: 目录 浅拷贝的原理和实现 定义: 创建一个新的对象,来接受要重新复制或引用的对象值。如果对象属性是基本的数据类型,复制的就是基本类型的值给新对象;但如果属性是引用数据类型,复制的就是内存中的地址,如果其中一个对象改变了这个内存中的地址,肯定会影响到另一个对象。 JavaScript 提供的浅拷贝方法 阅读全文
posted @ 2022-04-26 15:28 小小紫苏 阅读(248) 评论(0) 推荐(0)
摘要: JS 数据类型你了解多少? 数据类型概念 JavaScript 的数据类型有下图所示的 8 种: 数据类型大致可以分成两类来进行存储: 基础类型存储在栈内存,被引用或拷贝时,会创建一个完全相等的变量; 引用类型存储在堆内存,存储的是地址,多个引用指向同一个地址,这里会涉及一个“共享”的概念。 题目一 阅读全文
posted @ 2022-04-24 23:35 小小紫苏 阅读(103) 评论(0) 推荐(0)