总结JS中的for循环类型

一、普通的for循环

1、具体使用

//1、数组
let arr = [1,2,3];
for(let i=0; i<arr.length; i++) {
  console.log(arr[i]);//1 2 3
}

//2、arguments对象
function b(a,b,c) {
  console.log(arguments instanceof Array);//false
  for(let i=0; i<arguments.length; i++) {
    console.log(arguments[i]);//1 2 3
  }
}
b(1,2,3);

//3、set对象
let set = new Set([1,2,3]);
for(let i=0; i<set.size; i++) {
  console.log(set);
  console.log(set[i]);//undefined undefined undefined
}

//4、map对象
let map = new Map();
map.set('name', 'miracle');
map.set('lover', 'soar');
for(let i=0; i<map.size; i++) {
  console.log(map[i]);//undefined undefined
}

二、for…in 和 for…of的使用及区别

1、文章链接
https://zoyi14.smartapps.cn/pages/note/index?origin=share&slug=c43f418d6bf0&_swebfr=1

https://blog.csdn.net/wuyujin1997/article/details/88743955

2、具体使用区别
(1)for…in

// 1、for in 可以遍历数组
var arr = [1,2,3];
/*
  输出结果:
    1
    2
    3
 */
for(let key in arr) {
  console.log(arr[key]);
}

// 下面这种报错
// for(let (key, value) in arr) {
//   console.log(value);
// }

// 2、for in 可以遍历对象
let obj = {
  name: 'miracle',
  lover: 'soar'
}
/*
  输出结果:
    name   
    miracle
    lover  
    soar
 */
for(let key in obj) {
  console.log(key);
  console.log(obj[key]);
}

// 下面这种报错
// for(let (key, value) in obj) {
//   console.log(key);
//   console.log(value);
// }

(2)for…of

// 1、for of 可以遍历数组
var arr = [1,2,3];
/*
  输出结果:
    1
    2
    3
 */
for(let value of arr) {
  console.log(value);
}

// 下面这种报错
// for(let (key, value) of arr) {
//   console.log(value);
// }

/*
  下面这种报错:
    TypeError: .for is not iterable
 */
// for(let [index, value] of arr) {
//   console.log(index);
//   console.log(value);
// }

// 2、for of 不可以遍历普通对象
let obj = {
  name: 'miracle',
  lover: 'soar'
}
/*
  报错:TypeError: obj is not iterable
*/
// for(let value of obj) {
//   console.log(value);
// }

/*
  报错:TypeError: obj is not iterable
 */
// for(let (key, value) of obj) {
//   console.log(key);
//   console.log(value);
// }

// 报错:Uncaught TypeError: obj is not iterable
for(let [key, value] of obj) {
  console.log(key, value);
}

// 3、for...of遍历map
let map = new Map();
map.set('name', 'miracle');
map.set('age', '20');
// 下面报错
// for(let (key, value) of map) {
//   console.log(key);
//   console.log(value);
// }

/*
  输出结果:
    name
    miracle
    age
    20
 */
for(let [key, value] of map) {
  console.log(key);
  console.log(value);
}

三、forEach的使用

1、文章链接
https://blog.csdn.net/fanfan_h/article/details/91406310

2、具体使用

// 1、采用forEach遍历数组
let arr = [1,2,3];
/*
  输出结果:
    1 0 [ 1, 2, 3 ]
    2 1 [ 1, 2, 3 ]
    3 2 [ 1, 2, 3 ]
 */
arr.forEach((value, index, arr) => {
  console.log(value, index, arr);
})

// 2、采用forEach遍历对象
let obj = {
  name: 'miralce',
  lover: 'soar'
}
// 报错: TypeError: obj.forEach is not a function
// obj.forEach((value, key, obj) => {
//   console.log(value, key, obj);
// })

// 3、采用forEach遍历map
let map = new Map();
map.set('name', 'miracle');
map.set('lover', 'soar');
/*
  输出结果:
    miracle name Map(2) { 'name' => 'miracle', 'lover' => 'soar' }
    soar lover Map(2) { 'name' => 'miracle', 'lover' => 'soar' }
 */
map.forEach((value, key, map) => {
  console.log(value, key, map);
})

四、总结

1、for循环

只能遍历数组,以及本身含有length属性的伪数组对象,如:arguments

2、for…in

(1) 可以遍历普通对象
(2)可以遍历数组,以及其他可迭代对象(可迭代对象,可以粗糙理解为对象本身就含有length(或者size)属性的伪数组对象),如Array, Map, Set、String、arguments等
(3)for…in遍历数组的缺点是:如果手动向数组添加成员属性, 则:虽然数组的length不变,但用for…in遍历数组会遍历到那些新定义的属性。

3、for…of

(1) 不能遍历普通对象
(2)可以遍历数组,以及其他可迭代对象(可迭代对象,可以粗糙理解为对象本身就含有length(或者size)属性的伪数组对象),如Array, Map, Set、String、arguments等

3、forEach

(1) 不能遍历普通对象
(2)可以遍历数组,以及其他可迭代对象(可迭代对象,可以粗糙理解为对象本身就含有length属性的伪数组对象),如Array, Map, Set、String等
(3)数组、以及其他可迭代对象都含有forEach这个方法,除了arguments,arguments是可迭代对象,但是arguments本身没有forEach方法。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 JavaScript ,for 循环用于重复执行代码块。其基本形式如下: ``` for (初始化语句; 条件表达式; 更新语句) { 循环代码块 } ``` 初始化语句用于设置循环的起始条件,通常是声明一个循环计数器。条件表达式是一个布尔表达式,每次循环都会被求值。如果条件表达式的值为 true,则执行循环代码块;如果值为 false,则退出循环。更新语句用于更新循环计数器,通常是让计数器加 1。 例如: ``` for (var i = 0; i < 5; i++) { console.log(i); } ``` 这个 for 循环会输出 0、1、2、3、4。 注意:如果忘记更新循环计数器,则会造成无限循环。 ### 回答2: JS语言的for循环是用来重复执行一段代码的一种循环结构。它的基本语法是for (初始操作; 循环条件; 循环结束后的操作) { 循环体 }。 在for循环,初始操作是在循环开始之前进行的一次操作,通常用来初始化一个变量。循环条件是在每次循环开始之前检查的条件,只有满足条件时才会执行循环体。循环结束后的操作是在每次循环结束之后进行的一次操作,通常用来更新循环变量的值。 循环体是需要重复执行的代码块,可以包含任意数量的语句。在每次循环开始之前,都会先判断循环条件是否为真,如果为真则执行循环体,否则跳出循环。 在循环,可以使用循环变量来控制循环的执行次数。循环变量通常是一个整型变量,它的值会在每次循环结束后更新。可以通过修改循环变量的值来控制循环的终止条件。 例如,下面的例子展示了一个简单的for循环,用来计算1到10的和: ```javascript var sum = 0; for (var i = 1; i <= 10; i++) { sum += i; } console.log(sum); // 输出55 ``` 在这个例子,初始操作是将sum变量初始化为0,循环条件是i小于等于10,循环结束后的操作是每次循环结束后将i的值增加1,循环体是将i的值加到sum。最后,会输出sum的值为55,表示1到10的和。 总之,JS语言的for循环是一种重复执行代码块的结构,可以通过初始操作、循环条件和循环结束后的操作来控制循环的执行次数。这种循环结构非常灵活,经常被用于迭代和循环计算等场景。 ### 回答3: JavaScript(简称JS)是一种脚本语言,其for循环是用来重复执行一段代码的结构。JS的for循环有三个部分:初始条件、循环条件和循环操作。 首先是初始条件,我们通过初始化一个变量来指定循环开始的位置。这个变量可以是任意类型,通常我们使用数字作为循环的计数器。比如,我们可以使用`let i = 0`来定义一个初始值为0的计数器。 然后是循环条件,循环将根据该条件的真假来决定是否继续执行循环。通常我们使用一个逻辑表达式来定义循环条件。例如,我们可以使用`i < 10`来表示当计数器小于10时继续执行循环。 最后是循环操作,每次循环执行完一次代码块后会执行的操作。通常我们使用递增或递减运算符来改变计数器的值,以便达到循环结束的条件。例如,我们可以使用`i++`来表示每次循环执行完后计数器增加1。 综合起来,for循环的写法如下: ``` for (let i = 0; i < 10; i++) { // 循环执行的代码块 } ``` 上面的代码段表示从0开始,每次循环执行的代码块后,计数器增加1,直到计数器的值大于等于10时停止循环。 需要注意的是,JS也支持嵌套的for循环,可以在循环内部再嵌套一个或多个for循环来实现复杂的迭代。 总结来说,JS的for循环是一种强大的工具,可以方便地实现代码的重复执行,提高效率。对于需要重复操作的任务,使用for循环可以简洁、高效地完成。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值