 Hello 算法 1.0.0b5 JavaScript版1. 将扑克牌划分为“有序”和“无序”两部分,并假设初始状态下最左 1 张扑克牌已经有序。 2. 在无序部分抽出一张扑克牌,插入至有序部分的正确位置;完成后最左 2 张扑克已经有序。 3. 不断循环步骤 2. ,每一轮将一张扑克牌从无序部分插入至有序部分,直至所有扑克牌都有序。 图 1‑2 扑克排序步骤 上述整理扑克牌的方法本质上是“插入排序”算法,它在处理小型数据集时非常高效。许多编程语言的排序 iteration」是一种重复执行某个任务的控制结构。在迭代中,程序会在满足一定的条件下重复执行某 段代码,直到这个条件不再满足。 1. for 循环 for 循环是最常见的迭代形式之一,适合预先知道迭代次数时使用。 以下函数基于 for 循环实现了求和 1 + 2 + ⋯ + ? ,求和结果使用变量 res 记录。需要注意的是,Python 中 range(a, b) 对应的区间是“左闭右开”的,对应的遍历范围为 对应的区间是“左闭右开”的,对应的遍历范围为 ?, ? + 1, … , ? − 1 。 // === File: iteration.js === /* for 循环 */ function forLoop(n) { let res = 0; // 循环求和 1, 2, ..., n-1, n for (let i = 1; i <= n; i++) { res += i; } return res;0 码力 | 375 页 | 30.68 MB | 1 年前3 Hello 算法 1.0.0b5 JavaScript版1. 将扑克牌划分为“有序”和“无序”两部分,并假设初始状态下最左 1 张扑克牌已经有序。 2. 在无序部分抽出一张扑克牌,插入至有序部分的正确位置;完成后最左 2 张扑克已经有序。 3. 不断循环步骤 2. ,每一轮将一张扑克牌从无序部分插入至有序部分,直至所有扑克牌都有序。 图 1‑2 扑克排序步骤 上述整理扑克牌的方法本质上是“插入排序”算法,它在处理小型数据集时非常高效。许多编程语言的排序 iteration」是一种重复执行某个任务的控制结构。在迭代中,程序会在满足一定的条件下重复执行某 段代码,直到这个条件不再满足。 1. for 循环 for 循环是最常见的迭代形式之一,适合预先知道迭代次数时使用。 以下函数基于 for 循环实现了求和 1 + 2 + ⋯ + ? ,求和结果使用变量 res 记录。需要注意的是,Python 中 range(a, b) 对应的区间是“左闭右开”的,对应的遍历范围为 对应的区间是“左闭右开”的,对应的遍历范围为 ?, ? + 1, … , ? − 1 。 // === File: iteration.js === /* for 循环 */ function forLoop(n) { let res = 0; // 循环求和 1, 2, ..., n-1, n for (let i = 1; i <= n; i++) { res += i; } return res;0 码力 | 375 页 | 30.68 MB | 1 年前3
 Hello 算法 1.2.0 简体中文 JavaScript 版1. 将扑克牌划分为“有序”和“无序”两部分,并假设初始状态下最左 1 张扑克牌已经有序。 2. 在无序部分抽出一张扑克牌,插入至有序部分的正确位置;完成后最左 2 张扑克已经有序。 3. 不断循环步骤 2. ,每一轮将一张扑克牌从无序部分插入至有序部分,直至所有扑克牌都有序。 图 1‑2 扑克排序步骤 上述整理扑克牌的方法本质上是“插入排序”算法,它在处理小型数据集时非常高效。许多编程语言的排序 迭代(iteration)是一种重复执行某个任务的控制结构。在迭代中,程序会在满足一定的条件下重复执行某段 代码,直到这个条件不再满足。 1. for 循环 for 循环是最常见的迭代形式之一,适合在预先知道迭代次数时使用。 以下函数基于 for 循环实现了求和 1 + 2 + ⋯ + ? ,求和结果使用变量 res 记录。需要注意的是,Python 中 range(a, b) 对应的区间是“左闭右开”的,对应的遍历范围为 对应的区间是“左闭右开”的,对应的遍历范围为 ?, ? + 1, … , ? − 1 : // === File: iteration.js === /* for 循环 */ function forLoop(n) { let res = 0; // 循环求和 1, 2, ..., n-1, n for (let i = 1; i <= n; i++) { res += i; } return res;0 码力 | 379 页 | 18.47 MB | 10 月前3 Hello 算法 1.2.0 简体中文 JavaScript 版1. 将扑克牌划分为“有序”和“无序”两部分,并假设初始状态下最左 1 张扑克牌已经有序。 2. 在无序部分抽出一张扑克牌,插入至有序部分的正确位置;完成后最左 2 张扑克已经有序。 3. 不断循环步骤 2. ,每一轮将一张扑克牌从无序部分插入至有序部分,直至所有扑克牌都有序。 图 1‑2 扑克排序步骤 上述整理扑克牌的方法本质上是“插入排序”算法,它在处理小型数据集时非常高效。许多编程语言的排序 迭代(iteration)是一种重复执行某个任务的控制结构。在迭代中,程序会在满足一定的条件下重复执行某段 代码,直到这个条件不再满足。 1. for 循环 for 循环是最常见的迭代形式之一,适合在预先知道迭代次数时使用。 以下函数基于 for 循环实现了求和 1 + 2 + ⋯ + ? ,求和结果使用变量 res 记录。需要注意的是,Python 中 range(a, b) 对应的区间是“左闭右开”的,对应的遍历范围为 对应的区间是“左闭右开”的,对应的遍历范围为 ?, ? + 1, … , ? − 1 : // === File: iteration.js === /* for 循环 */ function forLoop(n) { let res = 0; // 循环求和 1, 2, ..., n-1, n for (let i = 1; i <= n; i++) { res += i; } return res;0 码力 | 379 页 | 18.47 MB | 10 月前3
 Hello 算法 1.1.0 JavaScript版1. 将扑克牌划分为“有序”和“无序”两部分,并假设初始状态下最左 1 张扑克牌已经有序。 2. 在无序部分抽出一张扑克牌,插入至有序部分的正确位置;完成后最左 2 张扑克已经有序。 3. 不断循环步骤 2. ,每一轮将一张扑克牌从无序部分插入至有序部分,直至所有扑克牌都有序。 图 1‑2 扑克排序步骤 上述整理扑克牌的方法本质上是“插入排序”算法,它在处理小型数据集时非常高效。许多编程语言的排序 迭代(iteration)是一种重复执行某个任务的控制结构。在迭代中,程序会在满足一定的条件下重复执行某段 代码,直到这个条件不再满足。 1. for 循环 for 循环是最常见的迭代形式之一,适合在预先知道迭代次数时使用。 以下函数基于 for 循环实现了求和 1 + 2 + ⋯ + ? ,求和结果使用变量 res 记录。需要注意的是,Python 中 range(a, b) 对应的区间是“左闭右开”的,对应的遍历范围为 对应的区间是“左闭右开”的,对应的遍历范围为 ?, ? + 1, … , ? − 1 : // === File: iteration.js === /* for 循环 */ function forLoop(n) { let res = 0; // 循环求和 1, 2, ..., n-1, n for (let i = 1; i <= n; i++) { res += i; } return res;0 码力 | 379 页 | 18.46 MB | 1 年前3 Hello 算法 1.1.0 JavaScript版1. 将扑克牌划分为“有序”和“无序”两部分,并假设初始状态下最左 1 张扑克牌已经有序。 2. 在无序部分抽出一张扑克牌,插入至有序部分的正确位置;完成后最左 2 张扑克已经有序。 3. 不断循环步骤 2. ,每一轮将一张扑克牌从无序部分插入至有序部分,直至所有扑克牌都有序。 图 1‑2 扑克排序步骤 上述整理扑克牌的方法本质上是“插入排序”算法,它在处理小型数据集时非常高效。许多编程语言的排序 迭代(iteration)是一种重复执行某个任务的控制结构。在迭代中,程序会在满足一定的条件下重复执行某段 代码,直到这个条件不再满足。 1. for 循环 for 循环是最常见的迭代形式之一,适合在预先知道迭代次数时使用。 以下函数基于 for 循环实现了求和 1 + 2 + ⋯ + ? ,求和结果使用变量 res 记录。需要注意的是,Python 中 range(a, b) 对应的区间是“左闭右开”的,对应的遍历范围为 对应的区间是“左闭右开”的,对应的遍历范围为 ?, ? + 1, … , ? − 1 : // === File: iteration.js === /* for 循环 */ function forLoop(n) { let res = 0; // 循环求和 1, 2, ..., n-1, n for (let i = 1; i <= n; i++) { res += i; } return res;0 码力 | 379 页 | 18.46 MB | 1 年前3
 Hello 算法 1.0.0 JavaScript版1. 将扑克牌划分为“有序”和“无序”两部分,并假设初始状态下最左 1 张扑克牌已经有序。 2. 在无序部分抽出一张扑克牌,插入至有序部分的正确位置;完成后最左 2 张扑克已经有序。 3. 不断循环步骤 2. ,每一轮将一张扑克牌从无序部分插入至有序部分,直至所有扑克牌都有序。 图 1‑2 扑克排序步骤 上述整理扑克牌的方法本质上是“插入排序”算法,它在处理小型数据集时非常高效。许多编程语言的排序 iteration」是一种重复执行某个任务的控制结构。在迭代中,程序会在满足一定的条件下重复执行某 段代码,直到这个条件不再满足。 1. for 循环 for 循环是最常见的迭代形式之一,适合在预先知道迭代次数时使用。 以下函数基于 for 循环实现了求和 1 + 2 + ⋯ + ? ,求和结果使用变量 res 记录。需要注意的是,Python 中 range(a, b) 对应的区间是“左闭右开”的,对应的遍历范围为 对应的区间是“左闭右开”的,对应的遍历范围为 ?, ? + 1, … , ? − 1 : // === File: iteration.js === /* for 循环 */ function forLoop(n) { let res = 0; // 循环求和 1, 2, ..., n-1, n for (let i = 1; i <= n; i++) { res += i; } return res;0 码力 | 376 页 | 17.57 MB | 1 年前3 Hello 算法 1.0.0 JavaScript版1. 将扑克牌划分为“有序”和“无序”两部分,并假设初始状态下最左 1 张扑克牌已经有序。 2. 在无序部分抽出一张扑克牌,插入至有序部分的正确位置;完成后最左 2 张扑克已经有序。 3. 不断循环步骤 2. ,每一轮将一张扑克牌从无序部分插入至有序部分,直至所有扑克牌都有序。 图 1‑2 扑克排序步骤 上述整理扑克牌的方法本质上是“插入排序”算法,它在处理小型数据集时非常高效。许多编程语言的排序 iteration」是一种重复执行某个任务的控制结构。在迭代中,程序会在满足一定的条件下重复执行某 段代码,直到这个条件不再满足。 1. for 循环 for 循环是最常见的迭代形式之一,适合在预先知道迭代次数时使用。 以下函数基于 for 循环实现了求和 1 + 2 + ⋯ + ? ,求和结果使用变量 res 记录。需要注意的是,Python 中 range(a, b) 对应的区间是“左闭右开”的,对应的遍历范围为 对应的区间是“左闭右开”的,对应的遍历范围为 ?, ? + 1, … , ? − 1 : // === File: iteration.js === /* for 循环 */ function forLoop(n) { let res = 0; // 循环求和 1, 2, ..., n-1, n for (let i = 1; i <= n; i++) { res += i; } return res;0 码力 | 376 页 | 17.57 MB | 1 年前3
 阮一峰 《ECMAScript 6入门》 第三版数值的扩展 函数的扩展 数组的扩展 对象的扩展 Symbol Set 和 Map 数据结构 Proxy Reflect Promise 对象 Iterator 和 for...of 循环 Generator 函数的语法 Generator 函数的异步应用 async 函数 Class 的基本语法 Class 的继承 Decorator Module 的语法 Module 声明的变量只在它所在的代码块有效。 for 循环的计数器,就很合适使用 let 命令。 for (let i = 0; i < 10; i++) { // ... } console.log(i); // ReferenceError: i is not defined 上面代码中,计数器 i 只在 for 循环体内有效,在循环体外引用就会报错。 下面的代码如果使用 var console.log(i); }; } a[6](); // 10 上面代码中,变量 i 是 var 命令声明的,在全局范围内都有效,所以全局只有一 个变量 i 。每一次循环,变量 i 的值都会发生改变,而循环内被赋给数组 a 的 函数内部的 console.log(i) ,里面的 i 指向的就是全局的 i 。也就是说,所 有数组 a 的成员里面的 i ,指向的都是同一个0 码力 | 679 页 | 2.66 MB | 1 年前3 阮一峰 《ECMAScript 6入门》 第三版数值的扩展 函数的扩展 数组的扩展 对象的扩展 Symbol Set 和 Map 数据结构 Proxy Reflect Promise 对象 Iterator 和 for...of 循环 Generator 函数的语法 Generator 函数的异步应用 async 函数 Class 的基本语法 Class 的继承 Decorator Module 的语法 Module 声明的变量只在它所在的代码块有效。 for 循环的计数器,就很合适使用 let 命令。 for (let i = 0; i < 10; i++) { // ... } console.log(i); // ReferenceError: i is not defined 上面代码中,计数器 i 只在 for 循环体内有效,在循环体外引用就会报错。 下面的代码如果使用 var console.log(i); }; } a[6](); // 10 上面代码中,变量 i 是 var 命令声明的,在全局范围内都有效,所以全局只有一 个变量 i 。每一次循环,变量 i 的值都会发生改变,而循环内被赋给数组 a 的 函数内部的 console.log(i) ,里面的 i 指向的就是全局的 i 。也就是说,所 有数组 a 的成员里面的 i ,指向的都是同一个0 码力 | 679 页 | 2.66 MB | 1 年前3
 Hello 算法 1.0.0b1 JavaScript版的字,一般我们会这样做: 1. 打开字典大致一半页数的位置,查看此页的首字母是什么(假设为 ? ); 2. 由于在英文字母表中 ? 在 ? 的后面,因此应排除字典前半部分,查找范围仅剩后半部分; 3. 循环执行步骤 1‑2 ,直到找到拼音首字母为 ? 的页码时终止。 1. 引言 hello‑algo.com 9 Figure 1‑1. 查字典步骤 查字典这个小学生的标配技能,实际上就是大名鼎鼎的 // 在某运行平台下 function algorithm(n) { var a = 2; // 1 ns a = a + 1; // 1 ns a = a * 2; // 10 ns // 循环 n 次 for(let i = 0; i < n; i++) { // 1 ns ,每轮都要执行 i++ 2. 复杂度分析 hello‑algo.com 14 console.log(0); A 只有 1 个打印操作,算法运行时间不随着 ? 增大而增长。我们称此算法的时间复杂度为「常数阶」。 ‧ 算法 B 中的打印操作需要循环 ? 次,算法运行时间随着 ? 增大成线性增长。此算法的时间复杂度被称为 「线性阶」。 ‧ 算法 C 中的打印操作需要循环 1000000 次,但运行时间仍与输入数据大小 ? 无关。因此 C 的时间复杂 度和 A 相同,仍为「常数阶」。 // 算法 A 时间复杂度:常数阶0 码力 | 185 页 | 14.70 MB | 1 年前3 Hello 算法 1.0.0b1 JavaScript版的字,一般我们会这样做: 1. 打开字典大致一半页数的位置,查看此页的首字母是什么(假设为 ? ); 2. 由于在英文字母表中 ? 在 ? 的后面,因此应排除字典前半部分,查找范围仅剩后半部分; 3. 循环执行步骤 1‑2 ,直到找到拼音首字母为 ? 的页码时终止。 1. 引言 hello‑algo.com 9 Figure 1‑1. 查字典步骤 查字典这个小学生的标配技能,实际上就是大名鼎鼎的 // 在某运行平台下 function algorithm(n) { var a = 2; // 1 ns a = a + 1; // 1 ns a = a * 2; // 10 ns // 循环 n 次 for(let i = 0; i < n; i++) { // 1 ns ,每轮都要执行 i++ 2. 复杂度分析 hello‑algo.com 14 console.log(0); A 只有 1 个打印操作,算法运行时间不随着 ? 增大而增长。我们称此算法的时间复杂度为「常数阶」。 ‧ 算法 B 中的打印操作需要循环 ? 次,算法运行时间随着 ? 增大成线性增长。此算法的时间复杂度被称为 「线性阶」。 ‧ 算法 C 中的打印操作需要循环 1000000 次,但运行时间仍与输入数据大小 ? 无关。因此 C 的时间复杂 度和 A 相同,仍为「常数阶」。 // 算法 A 时间复杂度:常数阶0 码力 | 185 页 | 14.70 MB | 1 年前3
 廖雪峰JavaScript教程JavaScript教程 1 JavaScript简介 2 快速入门 2.1 基本语法 2.2 数据类型和变量 2.3 字符串 2.4 数组 2.5 对象 2.6 条件判断 2.7 循环 2.8 Map和Set 2.9 iterable 3 函数 3.1 函数定义和调用 3.2 变量作用域 3.3 方法 3.4 高阶函数 3.4.1 map/reduce 3.4.2 最后要注意浮点数的相等比较: 1. 1 / 3 === (1 - 2 / 3); // false 这不是JavaScript的设计缺陷。浮点数在运算过程中会产生误差,因为计算机无法精确表示无限循环 小数。要比较两个浮点数是否相等,只能计算它们之差的绝对值,看是否小于某个阈值: 1. Math.abs(1 / 3 - (1 - 2 / 3)) < 0.0000001; // true 比较运算符 构建 2.7 循环 要计算1+2+3,我们可以直接写表达式: 1. 1 + 2 + 3; // 6 要计算1+2+3+…+10,勉强也能写出来。 但是,要计算1+2+3+…+10000,直接写表达式就不可能了。 为了让计算机能计算成千上万次的重复运算,我们就需要循环语句。 JavaScript的循环有两种,一种是 for 循环,通过初始条件、结束条件和递增条件来循环执行语句 块:0 码力 | 264 页 | 2.81 MB | 10 月前3 廖雪峰JavaScript教程JavaScript教程 1 JavaScript简介 2 快速入门 2.1 基本语法 2.2 数据类型和变量 2.3 字符串 2.4 数组 2.5 对象 2.6 条件判断 2.7 循环 2.8 Map和Set 2.9 iterable 3 函数 3.1 函数定义和调用 3.2 变量作用域 3.3 方法 3.4 高阶函数 3.4.1 map/reduce 3.4.2 最后要注意浮点数的相等比较: 1. 1 / 3 === (1 - 2 / 3); // false 这不是JavaScript的设计缺陷。浮点数在运算过程中会产生误差,因为计算机无法精确表示无限循环 小数。要比较两个浮点数是否相等,只能计算它们之差的绝对值,看是否小于某个阈值: 1. Math.abs(1 / 3 - (1 - 2 / 3)) < 0.0000001; // true 比较运算符 构建 2.7 循环 要计算1+2+3,我们可以直接写表达式: 1. 1 + 2 + 3; // 6 要计算1+2+3+…+10,勉强也能写出来。 但是,要计算1+2+3+…+10000,直接写表达式就不可能了。 为了让计算机能计算成千上万次的重复运算,我们就需要循环语句。 JavaScript的循环有两种,一种是 for 循环,通过初始条件、结束条件和递增条件来循环执行语句 块:0 码力 | 264 页 | 2.81 MB | 10 月前3
 阮一峰 JavaScript 教程的基本语法 语句 变量 概念 变量提升 标识符 注释 区块 条件语句 if 结构 if…else 结构 switch 结构 三元运算符 ?: 循环语句 while 循环 for 循环 do…while 循环 break 语句和 continue 语句 标签(label) 参考链接 JavaScript 程序的执行单位为行(line),也就是一行一行地执 JavaScript === 0 ? '偶数' : '奇数'); 上面代码利用三元运算符,在字符串之中插入不同的值。 循环语句用于重复执行某个操作,它有多种形式。 While 语句包括一个循环条件和一段代码块,只要条件为真,就不断 循环执行代码块。 1. while (条件) 循环语句 while 循环 基本语法 - 46 - 本文档使用 书栈(BookStack.CN) 构建 2. 语句; 3. 4. // 或者 5. while (条件) 语句; while 语句的循环条件是一个表达式,必须放在圆括号中。代码块部 分,如果只有一条语句,可以省略大括号,否则就必须加上大括号。 1. while (条件) { 2. 语句; 3. } 下面是 while 语句的一个例子。 1. var i = 0; 2. 3. while (i < 100) { 40 码力 | 540 页 | 3.32 MB | 10 月前3 阮一峰 JavaScript 教程的基本语法 语句 变量 概念 变量提升 标识符 注释 区块 条件语句 if 结构 if…else 结构 switch 结构 三元运算符 ?: 循环语句 while 循环 for 循环 do…while 循环 break 语句和 continue 语句 标签(label) 参考链接 JavaScript 程序的执行单位为行(line),也就是一行一行地执 JavaScript === 0 ? '偶数' : '奇数'); 上面代码利用三元运算符,在字符串之中插入不同的值。 循环语句用于重复执行某个操作,它有多种形式。 While 语句包括一个循环条件和一段代码块,只要条件为真,就不断 循环执行代码块。 1. while (条件) 循环语句 while 循环 基本语法 - 46 - 本文档使用 书栈(BookStack.CN) 构建 2. 语句; 3. 4. // 或者 5. while (条件) 语句; while 语句的循环条件是一个表达式,必须放在圆括号中。代码块部 分,如果只有一条语句,可以省略大括号,否则就必须加上大括号。 1. while (条件) { 2. 语句; 3. } 下面是 while 语句的一个例子。 1. var i = 0; 2. 3. while (i < 100) { 40 码力 | 540 页 | 3.32 MB | 10 月前3
 [试读]15天学会JavaScript - 第 2 章
ECMAScript语法基础 func_block(); 15 关于【代码 2-38】的分析如下: 第 02~13 行代码定义一个函数方法(func_block()); 第 04~07 行代码定义一个 for 循环语句,其自变量就是变量(i)。比较特殊的是第 06 行 代码,通过“var”关键字定义变量(j),并赋值为变量(i)的值; 第 09~11 行代码通过 if 条件选择语句判断变量(i)是否等于数值 (j)是在 for 循环语句内,但第 08 行代码仍然成 功地获取并输出了变量(j)的值。这是为什么呢? 61 第 2 章 ECMAScript 语法基础 图 2.38 ECMAScript 块级作用域 这就是因为 JavaScript(ECMAScript)语法规范中没有定义“块级作用域”而产生的结果, 变量(j)虽然是定义在 for 循环语句内的,但其有效作 12 关于【代码 2-39】的分析如下: 第 04~08 行代码定义一个 for 循环语句,其自变量就是变量(i)。比较特殊的是第 06 行 代码,通过“let”关键字定义了第二个变量(j),并赋值为变量(i)的值; 第 09 行代码在 for 循环语句之后,再次在浏览器控制台窗口中输出变量(j)的值。 62 15 天学会 JavaScript(视频教学版)0 码力 | 52 页 | 3.83 MB | 1 年前3 [试读]15天学会JavaScript - 第 2 章
ECMAScript语法基础 func_block(); 15 关于【代码 2-38】的分析如下: 第 02~13 行代码定义一个函数方法(func_block()); 第 04~07 行代码定义一个 for 循环语句,其自变量就是变量(i)。比较特殊的是第 06 行 代码,通过“var”关键字定义变量(j),并赋值为变量(i)的值; 第 09~11 行代码通过 if 条件选择语句判断变量(i)是否等于数值 (j)是在 for 循环语句内,但第 08 行代码仍然成 功地获取并输出了变量(j)的值。这是为什么呢? 61 第 2 章 ECMAScript 语法基础 图 2.38 ECMAScript 块级作用域 这就是因为 JavaScript(ECMAScript)语法规范中没有定义“块级作用域”而产生的结果, 变量(j)虽然是定义在 for 循环语句内的,但其有效作 12 关于【代码 2-39】的分析如下: 第 04~08 行代码定义一个 for 循环语句,其自变量就是变量(i)。比较特殊的是第 06 行 代码,通过“let”关键字定义了第二个变量(j),并赋值为变量(i)的值; 第 09 行代码在 for 循环语句之后,再次在浏览器控制台窗口中输出变量(j)的值。 62 15 天学会 JavaScript(视频教学版)0 码力 | 52 页 | 3.83 MB | 1 年前3
 JavaScript Promise迷你书(中文版)此外,在同一章的Promise和数组 中,我们也介绍了一种效率不是特别高的,使用了 重 复使用多个then的方法 来实现如何按顺序进行处理。 在本小节中,我们将对如何在Promise中进行顺序处理进行介绍。 循环和顺序处理 在 重复使用多个then的方法 中的实现方法如下。 function getURL(URL) { return new Promise(function (resolve, reject) 使用这种写法的话那么随着 request 中元素数量的增加,我们也需要不断增加对 then 方法的调用 因此,如果我们将处理内容统一放到数组里,再配合for循环进行处理的话,那么处理 内容的增加将不会再带来什么问题。首先我们就使用for循环来完成和前面同样的处 理。 promise-foreach-xhr.js function getURL(URL) { return new Promise(function then(function (value) { console.log(value); }).catch(function(error){ console.error(error); }); 使用for循环的时候,如同我们在 专栏: 每次调用then都会返回一个新创建的promise对 象 以及 Promise和方法链 中学到的那样,每次调用 Promise#then 方法都会返回一个新 的promise对象。0 码力 | 112 页 | 1010.02 KB | 1 年前3 JavaScript Promise迷你书(中文版)此外,在同一章的Promise和数组 中,我们也介绍了一种效率不是特别高的,使用了 重 复使用多个then的方法 来实现如何按顺序进行处理。 在本小节中,我们将对如何在Promise中进行顺序处理进行介绍。 循环和顺序处理 在 重复使用多个then的方法 中的实现方法如下。 function getURL(URL) { return new Promise(function (resolve, reject) 使用这种写法的话那么随着 request 中元素数量的增加,我们也需要不断增加对 then 方法的调用 因此,如果我们将处理内容统一放到数组里,再配合for循环进行处理的话,那么处理 内容的增加将不会再带来什么问题。首先我们就使用for循环来完成和前面同样的处 理。 promise-foreach-xhr.js function getURL(URL) { return new Promise(function then(function (value) { console.log(value); }).catch(function(error){ console.error(error); }); 使用for循环的时候,如同我们在 专栏: 每次调用then都会返回一个新创建的promise对 象 以及 Promise和方法链 中学到的那样,每次调用 Promise#then 方法都会返回一个新 的promise对象。0 码力 | 112 页 | 1010.02 KB | 1 年前3
共 16 条
- 1
- 2













