对象遍历
方法 | 是否可遍历不可枚举属性 | 是否可遍历Symbol属性 | 是否可原型链属性 |
---|---|---|---|
Object.keys | --- | --- | --- |
for...in | --- | --- | true |
Object.getOwnPropertyNames | true | --- | --- |
Object.prototype.hasOwnProperty | true | true | --- |
Object.assign | --- | true | --- |
JSON.stringify | --- | --- | --- |
Reflect.ownKeys | true | true | --- |
Object.getOwnPropertySymbols | --- | true | --- |
数组遍历中各个方法的特点
- Array.prototype.forEach:
- 无法跳出循环
- for...in:
- 数组的键名是数字,但是for...in循环是以字符串作为键名“0”、“1”、“2”等等。
- for...in循环不仅遍历数字键名,还会遍历手动添加的其他键,甚至包括原型链上的键。
- for...of:
- 有着同for...in一样的简洁语法,但是没有for...in那些缺点。
- 不同于forEach方法,它可以与break、continue和return配合使用。
- 提供了遍历所有数据结构的统一操作接口。
网友评论