javascript for…in 和 for of区别详解编程语言

for in 和 for of

  • for in
    • 以任意顺序遍历对象的可枚举属性 (enumerable properties),包括对象从其构造函数原型中继承的属性。
  • for of
    • 遍历 可迭代对象(iterable object) 定义的可迭代的数据 ,比如遍历 Array,Map,Set,String,TypedArray,arguments 等对象的数据。

for in遍历数组

  • for in 遍历的是对象的可枚举属性,包括对象自身及从原型链继承而来的属性。
/** 
 * 遍历数组 
 * @type {Array} 
 */ 
Object.prototype.objCustom={}; 
Array.prototype.arrCustom={}; 
var arr =[1,2,3,4]; 
arr.name='jack'; 
for(var value in arr){ 
	console.log(value);//0 1 2 3 name arrCustom objCustom 
} 

0、1、2、3是索引值,name是自身的属性,arrCustom是继承自Array的属性,objCustom是继承自Object的属性。

for of 遍历数组

  • for of遍历iterable object定义的可迭代的数据
Object.prototype.objCustom={}; 
Array.prototype.arrCustom={}; 
var arr =[1,2,3,4]; 
arr.name='jack'; 
for(var value of arr){ 
	console.log(value);//1 2 3 4 
} 

1、2、3、4 是数组元素,并没有遍历自身及继承的属性

#总结

  • for in用来遍历对象的可枚举属性,因为遍历顺序取决于宿主环境
  • for of用来遍历iterable object,比如Set、Map、String、Array及类似Array的arguments、NodeList

#参考

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/20302.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论