forin和foreach的区别与联系 ,for for in for of foreach区别

本文目录

for for in for of foreach区别


优点: 遍历的时候更加简洁,效率和for循环相同,不用关心集合下标的问题,减少出错的效率
缺点: 不能同时遍历多个集合,在遍历的时候无法修改和删除集合数据,方法不能使用break,continue语句跳出循环,或者使用return从函数体返回,对于空数组不会执行回调函数

forEach不可遍历对象,这也是和for in的区别

优点: 可以遍历数组的键名,遍历对象简洁方便
缺点: 某些情况下,会出现随机顺序的遍历,因为里面的值是string类型,所以增加了转换过程,因此开销比较大

优点: 避免了for in的所有缺点,可以使用break,continue和return,不仅支持数组的遍历,还可以遍历类似数组的对象,支持字符串的遍历,最直接的遍历数组的语法,支持map和set对象遍历
缺点: 不适用于处理原有的原生对象

优点: 程序简洁,结构清晰,循环初始化,循环变量化,循环体和循环条件位置突出
缺点: 结构比while循环复杂,容易出编码错误

forin和foreach的区别与联系
,for for in for of foreach区别图1

for循环和for in循环的区别


for … in循环由于历史遗留问题,它遍历的实际上是对象的属性名称。一个Array数组实际上也是一个对象,它的每个元素的索引被视为一个属性。

当我们手动给Array对象添加了额外的属性后,for … in循环将带来意想不到的意外效果:

而for循环去识别不了

for … in循环将把name包括在内,但Array的length属性却不包括在内。

for … of循环则完全修复了这些问题,它只循环集合本身的元素:

这就是为什么要引入新的for … of循环。

然而,更好的方式是直接使用iterable内置的forEach方法,它接收一个函数,每次迭代就自动回调该函数。以Array为例:

注意,forEach()方法是ES5.1标准引入的,你需要测试浏览器是否支持。

for循环可一遍历数组,而for in循环可以遍历数组和对象
使用for in循环会将Array当成对象遍历,而Array的存取速度明显比Object要快。所以使用for循环遍历数组比for in循环遍历快。
for循环遍历的是索引数组,通过索引来调用,i的返回值是number类型
而for in循环遍历的是关联数组,通过key来调用,i的返回值是string类型

这两者的具体用途 得看你用他的环境是什么.不能一概而论.
索引数组:仅仅用于存储数据. 优势在于迭代方便
关联数组:用于存放对应的数据格式, 优势在于 可以很方便 特定key对应的value 缺点:迭代麻烦

forin和foreach的区别与联系
,for for in for of foreach区别图2

for循环和for in循环的区别


for循环就是我们常用的方法用来遍历。for in一般是用来遍历对象的,for 循环可以遍历一个数组,而for in遍历对象,对象有多个属性,各个属性又有各自 的值。在上面的案例里面,想要获取对象的属性相应的值for是遍历不了的,这个时候for in就出场了。
上面的案例中,对象wq里有三个属性和相对应的值,想要获取到这三个属性及相对应的值for是办不到的,只有for in才可以,所以说,for in一般都是用在遍历对象的,另外,for in也可以遍历数组,但是会存在以下几个问题。

1、 for in这种循环i是string类型的,不能直接进行几何运算
2、遍历顺序有可能不是按照实际数组的内部顺序
3、使用for in会遍历数组所有的属性,包括原型。例如上例的原型方法method和name属性
4、简而言之,for-in是为普通对象设计的,你可以遍历得到字符串类型的键,因此不适用于数组遍历。

所以说for in也有他的局限性,因此遍历一般的数组用for比较好,遍历对象就需要for in了


forin和foreach的区别与联系
,for for in for of foreach区别图3

for和forEach的区别


for和foreach有本质的区别
foreach的具体过程是由目标对象控制的
所以并非集合内容更改了就不可以使用foreach
而是Array和Collection对象如此实现了它而已
你却可以完全按照自己的想法去实现这一过程
也许你可以去翻一下Gof的Visitor模式,foreach看起来就是它的简化版本
我们应该把foreach当作一种设计模式而不是简单的一个循环语句去理解
目前C#里的foreach是以IEnumerable的方式去实现,这只是保留COM的实现方式,这种方式我认为其实不太便于理解
我想如果存在一个IForEachable其成员为ForEach(..),这样可能更能让人容易明白

forin和foreach的区别与联系
,for for in for of foreach区别图4

以上就是关于forin和foreach的区别与联系 ,for for in for of foreach区别的全部内容,以及forin和foreach的区别与联系 的相关内容,希望能够帮到您。

上一篇 2022年11月25日15时53分37秒
下一篇 2022年11月25日15时57分35秒

相关推荐

  • 不定代词some的用法

    本文目录 1.用于表示数量 2.用于表示程度或程度的不确定性 3.用于表示建议或请求 在英语中,不定代词 "some" 是一种常见的词汇,它有多种不同的用法。下面就让我们一起来探讨一下这个词的用法吧。 用于表示数量 首先,"some" 可以用来表示数量,例如: There are some apples in the basket.(篮子里有一些苹果。) Can you give me some …

    英语知识 2023年06月07日
    11
  • 英语中对比关系连词

    本文目录 1. but 2. however 3. although 4. whereas 在英语中,对比关系是我们经常用到的语法结构之一。在表达对比关系时,我们需要使用对比关系连词。对比关系连词是一种连接两个相对独立的句子,用于表达两个事物之间的对比关系。下面是一些常用的对比关系连词: 1. but but 是最常用的对比关系连词之一,它用于表达前后两个句子之间的转折关系。例如: I wante…

    英语知识 2023年06月07日
    11
  • 四种名词性从句的例子

    本文目录 1. 主语从句 2. 宾语从句 3. 表语从句 4. 同位语从句 在英语语法中,名词性从句是一种可以充当名词的句子。它可以在句子中作主语、宾语、表语或补语。今天我们将介绍四种不同类型的名词性从句,并提供一些例子。 1. 主语从句 主语从句是一个从句,它在句子中充当主语。以下是一些主语从句的例子: What he said really surprised me. (他说的话真的让我吃惊了…

    英语知识 2023年06月07日
    11
  • 英语的三单形式是什么

    在英语语法中,动词的三单形式是指在第三人称单数时,动词需要做的变化。三单形式通常是在动词末尾加-s或-es。 对于大多数动词,只需要在动词末尾加上-s即可形成三单形式。例如:talks,walks,eats等。 对于以s、x、z、ch、sh结尾的动词,需要在动词末尾加上-es。例如:fixes,buzzes,watches等。 对于以辅音字母+y结尾的动词,需要把y变成i,再加-es。例如:stu…

    英语知识 2023年06月07日
    11
  • 名词性从句包括哪几种

    在英语语法中,名词性从句是一种表达一个名词或名词短语的语句,它可以在句子中充当名词的角色。名词性从句可以分成三种,分别是主语从句、宾语从句和表语从句。 主语从句 主语从句是一个独立的从句,它在句子中作为主语。它的构成方式为:“What/Whether/Who/Whom/Which/How/Why + 动词 + 主语 + 其他成分”,例如: What you said is true. (你说的是真…

    英语知识 2023年06月07日
    11
  • 英语感叹词的用法总结

    本文目录 1.常见的英语感叹词 2.英语感叹词的用法 3.结论 英语感叹词是表达强烈感情和情感的重要一部分。它们可以用于表达高兴、惊讶、疑惑、愤怒等情绪。本文总结了一些常见的英语感叹词及其用法。 常见的英语感叹词 以下是一些常用的英语感叹词: Wow:表示惊讶或赞叹。 Oh:表示惊讶、疑惑或遗憾。 Ah:表示惊讶、认同或疑惑。 Ouch:表示疼痛或不舒服。 Oops:表示出错或懊悔。 Yikes:…

    英语知识 2023年06月07日
    11
  • 指示代词的区别

    本文目录 1.This 和 That 2.These 和 Those 3.总结 指示代词是英语中常用的代词之一。它们用于指代特定的人、物或概念。然而,在使用指示代词时,我们需要注意它们的区别。 This 和 That This 和 That 都可以用来指代单数名词,但它们有不同的用法。This 通常用来指代离说话者较近的人或物,而 That 则用来指代离说话者较远的人或物。例如: This boo…

    英语知识 2023年06月07日
    11
  • 英语主语人称代词排序

    英语中的主语人称代词有三种,分别是第一人称代词(I,we),第二人称代词(you),以及第三人称代词(he,she,it,they)。在英语语法中,这三种人称代词的使用需要遵循一定的排序规则。 首先,第一人称代词需要放在第二人称代词和第三人称代词之前,即“I”和“we”要放在“you”和“he/she/it/they”的前面。例如,“I and he went to the store”是正确的排…

    英语知识 2023年06月07日
    11