Heading for the future
上一页 1 2 3 4 5 6 ··· 24 下一页
摘要: 核心 构造函数核心 维护状态变量,只能由pending变为resolve或者reject 维护一个存储结果的变量 维护一个回调数组,执行到then,如果我们传入的立即执行函数没有立即执行resolve或者reject,所以promise的状态还是pending,这时要把then里面的回调函数保存起来 阅读全文
posted @ 2020-09-12 12:32 一只菜鸟攻城狮啊 阅读(454) 评论(0) 推荐(0) 编辑
摘要: 核心 设置最大请求数量,当前请求数量,待执行队列 调用时,创建一个新任务,然后判断是否达到最大请求数量,若达到则将任务追加到待执行队列,否则,则直接执行该任务。并返回Promise 创建任务时,需要返回一个函数,当该任务开始执行则当前数量加一。当任务执行完毕时使用finally,当前数量减一,并从待 阅读全文
posted @ 2020-09-11 08:56 一只菜鸟攻城狮啊 阅读(3362) 评论(2) 推荐(1) 编辑
摘要: 注意点 入参一般是个由Promise实例组成的数组,但是也可以不是数组,但必须具有 Iterator 接口,且返回的每个成员都是 Promise 实例。若参数如果不是 Promise 实例,就会先调用Promise.resolve()方法,将参数转为 Promise 实例,再进一步处理。 返回值是个 阅读全文
posted @ 2020-09-10 13:15 一只菜鸟攻城狮啊 阅读(332) 评论(0) 推荐(0) 编辑
摘要: 其实数组去重的实现就分为两大类 利用语法自身键不可重复性 利用循环(递归)和数组方法使用不同的api来处理。 注意⚠️:下列封装成方法的要在函数开始增加类型检测,为了让去重的实现代码更加简单易懂,封装时我会省略类型检测 function noRepeat(){ if (!Array.isArray( 阅读全文
posted @ 2020-09-09 20:00 一只菜鸟攻城狮啊 阅读(575) 评论(2) 推荐(0) 编辑
摘要: 定义 协程(coroutine)是一种程序运行的方式,可以理解成“协作的线程”或“协作的函数”。协程是一组序列化的子过程,然后用户能像指挥家一样调度交叉执行。协程既可以用单线程实现,也可以用多线程实现。前者是一种特殊的子例程,后者是一种特殊的线程。 协程与子例程的差异 传统的“子例程”(subrou 阅读全文
posted @ 2020-09-09 09:56 一只菜鸟攻城狮啊 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 下面是五种实现斐波那契数列的方法 循环 function fibonacci(n){ var res1 = 1; var res2 = 1; var sum = res2; for(var i = 1;i < n;i ++){ sum = res1 + res2; res1 = res2; res2 阅读全文
posted @ 2020-09-08 22:33 一只菜鸟攻城狮啊 阅读(3647) 评论(0) 推荐(0) 编辑
摘要: typeof typeof 123; // number typeof 'test'; // string typeof true; // boolean typeof [1,2,3]; // object typeof {name:'wenzi', age:25}; // object typeo 阅读全文
posted @ 2020-09-07 08:39 一只菜鸟攻城狮啊 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 产生原因 为什么会产生跨域呢,因为浏览器为了安全采用了一系列的安全机制,其中有一个是同源策略。何为同源策略(same-origin policy)。简单来讲同源策略就是浏览器为了保证用户信息的安全,防止恶意的网站窃取数据,禁止不同域之间的JS进行交互。对于浏览器而言只要域名、协议、端口其中一个不同就 阅读全文
posted @ 2020-09-06 00:03 一只菜鸟攻城狮啊 阅读(931) 评论(0) 推荐(1) 编辑
摘要: 常见数组方法如下 判断是否是数组: isArray() 添加修改数组: push() pop() shift() unshift() slice() splice() sort() reverse() 是否包含某元素: indexOf() includes() 转换: toString() join 阅读全文
posted @ 2020-09-03 23:38 一只菜鸟攻城狮啊 阅读(371) 评论(0) 推荐(0) 编辑
摘要: 日常中我们可能会遇到将多维数组转换为一维数组的需求,让我们来看看如何实现 toString()方法 let array = [1, [2], [3, [4, [5]]]] function flat(arr) { return arr.toString().split(',').map(val => 阅读全文
posted @ 2020-09-03 13:08 一只菜鸟攻城狮啊 阅读(903) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 24 下一页