foreach forin forof的区别(typescript中 循环for of与其他循环的区别)

本文目录
- typescript中 循环for of与其他循环的区别
- 详解forin和forof的区别
- forEach for-in for-of的区别
- 介词of、 in、 at、 for有什么区别
- Js中for in 和for of的区别
typescript中 循环for of与其他循环的区别
1.JavaScript中的forEach用法。它循环的结果是数组的元素!可以有最多三个参数,但是不能break中断循环,如下:
var arr = ;
arr.forEach(function(value,index,array){
array == value; //结果为true
});
//index为下标
//array为数组本身
2:ts中的 for of循环,用法类似于forEach,但是能中断循环
for (x of arr){
if(x==2){
break;
}
console.log(arr);
}
3:for in 循环;用法和for of 一样。但是它能遍历属性,如下:
arr.name = "这是个数组";
for (x in arr){
console.log(arr)
}
//结果 1 2 3 4 这是个数组
详解forin和forof的区别
for...in 和 for...of 都是 JavaScript 中遍历数据的方法,让我们来了解一下他们的区别。
for...in 是为遍历对象属性而构建的,它以任意顺序遍历一个对象的除 Symbol 以外的可枚举属性,可用 break 或者 throw 跳出
语法:
例子:
在 JavaScript 中,数组也是对象的一种,所以数组也是可以使用 for...in 遍历
for...of 语句在可迭代对象上创建一个迭代循环,调用自定义迭代钩子,并为每个不同属性的值执行语句(包括 Array , Map , Set , String , TypedArray , arguments 等等,不包括 Object ),可用 break 或者 throw 跳出。
语法:
例子:
无论是 for...in 还是 for...of 都是迭代一些东西。它们之间的主要区别在于它们的迭代方式
下面列出遍历 Array 时候, for...in 和 for...of 的区别:
上例,通过 Array.prototype 添加了 ufo 属性,由于继承和原型链,所以 arr 也继承了 ufo 属性,属于可枚举属性,所以 for...in 会遍历出来,而 for...of 则不会。
如果看了觉得有帮助的,我是@ 鹏多多11997110103 ,欢迎 点赞 关注 评论;
END
往期文章
个人主页
forEach for-in for-of的区别
首先最基础的就是for循环了
只能循环数组,不能使用break continue(会直接报错),使用return可以条跳过当前循环,继续后边的
如下可见 for in 循环遍历的值都是数据结构的键值 可以使用break和continue
是es6新增加的 用来循环获取一对键值对中的值 可以使用break和continue
***隐藏网址***
一个数据结构只要部署了Symbol.iterator属性,就被视为具有 iterator 接口,就可以用for...of循环遍历它的成员。也就是说,for...of循环内部调用的是数据结构的Symbol.iterator方法。
for...of循环可以使用的范围包括数组、Set 和 Map 结构、某些类似数组的对象(比如arguments对象、DOM NodeList 对象)、后文的 Generator 对象,以及字符串
对于普通的对象使用for of会报错
mdn上解释的很清楚
***隐藏网址***
个人理解过来:
for in以任意顺序迭代对象的所有可枚举的属性,包括一个对象上原型上添加的属性等也将会被枚举出来
for of 遍历可迭代对象定义的要迭代的数据
介词of、 in、 at、 for有什么区别
它们的区别我知道(๑╹◡╹)ノ""",at 通常用于表示具体的地点或时间;in 用于表示在某个范围内或某段时间内;to 用于表示方向、目的或接收者;with 用于表示伴随或工具;of 用于表示从属或所有关系;for 用于表示目的或原因。这里就给大家总结了一个它们基础知识的表格,可以先简单了解一下先:
了解完它们的基础知识后,现在就来看看它们的具体区别吧ლ(・∀・ )ლ
1、用法不同
at、in、to、with、of和 for都是介词,但它们的用法各有不同。at 通常用于表示具体的地点或时间;in 用于表示在某个范围内或某段时间内;to 用于表示方向、目的或接收者;with 用于表示伴随或工具;of 用于表示从属或所有关系;for 用于表示目的或原因。
例句:
①I will meet you at the station. 我会在车站见你。
②I live in New York. 我住在纽约。
③I gave the book to him. 我把书给了他。
④I wrote the letter with a pen. 我用笔写了这封信。
⑤This is a picture of my family. 这是我家的一张照片。
⑥I bought a gift for you. 我为你买了一份礼物。
2、搭配词汇不同
at、in、to、with、of和 for在搭配其他词汇时,可能会有所不同。
例句:
①I am good at math. 我擅长数学。
②I am in the library. 我在图书馆。
③I go to school by bus. 我坐公交车去学校。
④I am with my friends. 我和我的朋友在一起。
⑤The color of the sky is blue. 天空的颜色是蓝色的。
⑥This is for you. 这是给你的。
3、固定表达不同
at、in、to、with、of和 for在许多固定表达中的用法和含义也不同。
例句:
①I will arrive at 5 o’clock. 我会在5点到达。
②I am in love. 我恋爱了。
③I look forward to seeing you. 我期待见到你。
④I agree with you. 我同意你的观点。
⑤The book consists of three parts. 这本书由三部分组成。
⑥I am waiting for you. 我在等你。
Js中for in 和for of的区别
对数组的遍历大家最常用的就是for循环,ES5的话也可以使用forEach,ES5具有遍历数组功能的还有map、filter、some、every、reduce、reduceRight等,只不过他们的返回结果不一样。但是使用foreach遍历数组的话,使用break不能中断循环,使用return也不能返回到外层函数。
那么接下来我们一起看一下for in 和for of 的区别吧。
##### for in
看一个简单的例子
```
//for in 应用于数组
Array.prototype.sayHello = function(){
console.log("Hello")
}
Array.prototype.str = ’world’;
var myArray = ;
myArray.name=’数组’;
for(let index in myArray){
console.log(index);
}
//输出结果如下
0,1,2,3,4,name,str,sayHello
//for in 应用于对象中
Object.prototype.sayHello = function(){
console.log(’Hello’);
}
Obeject.prototype.str = ’World’;
var myObject = {name:’zhangsan’,age:100};
for(let index in myObject){
console.log(index);
}
//输出结果
name,age,str,sayHello
//首先输出的是对象的属性名,再是对象原型中的属性和方法,
//如果不想让其输出原型中的属性和方法,可以使用hasOwnProperty方法进行过滤
for(let index in myObject){
if(myObject.hasOwnProperty(index)){
console.log(index)
}
}
//输出结果为
name,age
//你也可以用Object.keys()方法获取所有的自身可枚举属性组成的数组。
Object.keys(myObject)
```
可以看出for in 应用于数组循环返回的是数组的下标和数组的属性和原型上的方法和属性,而for in应用于对象循环返回的是对象的属性名和原型中的方法和属性。
使用for in 也可以遍历数组,但是会存在以下问题:
1.index索引为字符串型数字,不能直接进行几何运算
2.遍历顺序有可能不是按照实际数组的内部顺序
3.使用for in会遍历数组所有的可枚举属性,包括原型。例如上栗的原型方法method和name属性
##### for of
```
Object.prototype.sayHello = function(){
console.log(’Hello’);
}
var myObject = {
name:’zhangsan’,
age:10
}
for(let key of myObject){
consoloe.log(key);
}
//输出结果
//typeError
Array.prototype.sayHello = function(){
console.log("Hello");
}
var myArray = ;
for(let key of myArray){
console.log(key);
}
//输出结果
1,200,3,400,100
```
for in遍历的是数组的索引(即键名),而for of遍历的是数组元素值。
所以for in更适合遍历对象,不要使用for in遍历数组。

更多文章:
细胞之间的interaction(细胞间相互作用方式有什么 有什么区别)
2026年5月26日 18:45
powder是什么刷子(rt化妆刷怎么样Real Techniques化妆刷怎么样)
2025年5月28日 07:15
u16女足亚洲杯直播(女足亚洲杯半决赛时间直播什么平台能看)
2026年4月9日 20:45
excel教程进阶(小白学Excel之操作中的常用技巧-Excel学习网)
2026年4月22日 12:45
结构体数组交换位置(c语言编程:将一个数组中的值按逆序重新存放,例如,原来顺序为8,6,5,4,3,要求改为3,4,5)
2025年9月14日 12:00
哪些cms可以做小说站(Wordpress、Discuz、KingCMS、MediaWiki各适合建什么样的站)
2026年7月24日 05:30
countif是计算什么的(excel中countif函数的功能是什么)
2025年5月29日 21:15
html5可以用在哪些方面(html5可以用来干什么,应用于哪些领域发展前景如何)
2026年3月11日 15:30
什么不是数据库系统的特点(急求解答题目 :什么不是数据库系统阶段的特点等)
2025年7月23日 08:45
运算放大器权威指南第五版(单电源运放和双电源运放有什么区别)
2026年5月1日 20:15
函数图像生成器 网页(有没有一种软件,当你输入数学公式后,软件就可以生成相应的图形(平面的或三维的))
2026年5月26日 16:45
thinkphp后台模板(为什么在thinkphp中的模板里只显示html代码,如图)
2025年7月25日 16:45
webservice部署在服务器(如何部署java webservice)
2025年12月16日 21:15
decimal转换为int(C#中怎样将decimal转int)
2025年6月3日 04:30
java的graphics详解(Java的Graphics类应该怎么用)
2026年8月9日 23:00









