for 循环

  1. for (var i=0; i<5; i++) { // 参数(初始值;条件;每循环一次修改初始值、当初始值不在满足条件,循环就被终止)
  2. console.log(i)
  3. // 0
  4. // 1
  5. // 2
  6. // 3
  7. // 4
  8. }

for in 遍历 key

for (index in object)
for in遍历数组循环出的是index,for of循环出的是value

  1. var arr = ['Apple', 'Google', 'Microsoft'];
  2. for (var i in arr) {
  3. console.log(i);
  4. console.log(arr[i]);
  5. }

image.png

for of 遍历 valueES6

  • for in 一般常用来遍历对象
  • for in 数组对象都可以遍历
  • for of 无法遍历对象,遍历对象需要通过配合 Object.keys(),使用Object.keys方法将对象的键名生成一个数组,然后遍历这个数组。

    1. for (var key of Object.keys(someObject)) {
    2. console.log(key + ': ' + someObject[key]);
    3. }
  • for in 遍历对象循环出的是 key,for of 循环出的是 value


for await of

  1. const directoryHandle = await window.showDirectoryPicker();
  2. for await (const [name, handle] of directoryHandle.entries()) {
  3. if (handle.kind === 'file') {
  4. const fileHandle = await directoryHandle.getFileHandle(name);
  5. console.log(fileHandle);
  6. } else {
  7. const directoryHandle = await directoryHandle.getDirectoryHandle(name);
  8. console.log(directoryHandle);
  9. }
  10. }

while 循环

实例

  1. var i = 0
  2. while (i<5) {
  3. console.log(i)
  4. // 0
  5. // 1
  6. // 2
  7. // 3
  8. // 4
  9. i++ // 每循环一次 i + 1,当 i = 5 不在满足条件循环结束
  10. }

continue 跳过当前轮次

跳过当前循环。

  1. for (var i=0; i<5; i++) {
  2. if (i === 2) { // 当 i = 2 时,跳过当前循环
  3. continue
  4. }
  5. console.log(i)
  6. // 0
  7. // 1
  8. // 3
  9. // 4
  10. }

break 退出循环

退出整个循环。

  1. for (var i=0; i<5; i++) {
  2. if (i === 2) { // 当 i = 2 时,终止循环
  3. break
  4. }
  5. console.log(i)
  6. // 0
  7. // 1
  8. }

异步迭代

异步迭代在 Node.js 中用的会多些,使用 for-await-of 遍历异步数据。例如使用 MongoDB 查询数据返回值默认为一个游标对象,避免了一次性把数据读入应用内存

  1. const userCursor = userCollection.find();
  2. for await (const data of userCursor) { ... }