console.log(i);//输出: 0 1 2 demo}//查看原生的方法[[enumberable]]特征,这里以splice为例Array.prototype.propertyIsEnumerable('splice');//falseObject.getOwnPropertyDescriptor(Array.prototype,'splice');//{writable: true, enumerable: false, configurable: true}//查看 demo 属性的特性Array.prototype...
1、for..of为ES6新增的方法,主要来遍历可迭代的对象(包括Array, Map, Set, arguments等),它主要用来获取对象的属性值,而for..in主要获取对象的属性名。 for of支持遍历数组、类对象(例如DOM NodeList对象)、字符串、Map对象、Set对象; for of不支持遍历普通对象,可通过与Object.keys()搭配使用遍历;(见示例二)...
for (let key of Object.keys(aa)) { console.log(key); } output: name age 所以for in更适合遍历对象,不要使用for in遍历数组。 String 类似于Array和Object,for...in和for...of用法如下,String本身没有forEach方法: String.prototype.name = 'welcome'; let str = 'hello world'; for (let key ...
这里以splice为例Array.prototype.propertyIsEnumerable('splice');//falseObject.getOwnPropertyDescriptor(Array.prototype,'splice');//{writable: true, enumerable: false, configurable: true}//查看 demo 属性的特性Array.prototype.propertyIsEnumerable('demo');//trueObject.getOwnPropertyDescriptor(Array.prototyp...
在没有深度了解过for in的作用前,我只停留在它能够遍历对象键和数组下标的的层面上,那现在就来探究什么是一个对象中的Symbol类型键(ES6之后新加的)和可枚举属性, JS中的对象类型包括Object,Array,Function,Date,Math... 本文主要用Object和Array来进行实践 首先...
2、for in会遍历对象或数组除Symbol类型以外的所有可枚举属性,包括原型。如果不想遍历原型方法和属性的话,可以在循环内部判断一下,使用hasOwnProperty()方法可以判断某属性是不是该对象的实例属性 // 遍历对象consts1=Symbol("symbol1")constobj={a:1,b:2,c:3,[s1]:4}for(letkeyinobj){if(Object.hasOwn...
for-of循环 JavaScript6里引入了一种新的循环方法,它就是for-of循环,它既比传统的for循环简洁,同时弥补了forEach和for-in循环的短板。 我们看一下它的for-of的语法: for (var value of myArray) { console.log(value); } for-of的语法看起来跟for-in很相似,但它的功能却丰富的多,它能循环很多东西。
for...of 现在是我们的第二个主角for...of。如果你不知道,for...of在 ES6 中引入。for...of已经成为很多 JavaScript 开发者的有用迭代方法。for...of可以迭代任何可迭代对象。你把它命名为, String, Array, Object... String constname ="Megan"; ...
1.推荐在循环对象属性的时候,使用for...in,在遍历数组的时候的时候使用for...of。 2.for...in循环出的是key,for...of循环出的是value 3.注意,for...of是ES6新引入的特性。修复了ES5引入的for...in的不足 4.for...of不能循环普通的对象,需要通过和Object.keys()搭配使用 ...
for(var item of arr){ console.log(item); } 输入结果: 给数组添加一个自定义属性name,并且赋值"数组"。然后进行遍历输出的,会发现新定义的属性也被for in输出来了,而for of并不会对name进行输出。 如果想让对象可以使用 for of循环怎么办?使用 Object.keys() 获取对象的 key值集合后,再使用 for of ...