js的遍历问题
for in和for of区别
js的遍历真的让人迷迷糊糊的,单纯的for、while循环不够,map、forEach还能理解,居然还多几个for…in,for…of。着实让人摸不到头脑
相信大家在学习遍历时,一定碰见了两个名词,enumerable和iterator
要区别它们首先得理解这两者的差异。
enumerable和iterator
enumerable
对象的属性对象,让我们打印出来看看
| 1 | var obj = { p: "a" }; | 
回顾:之前关于属性的三种状态
Extensible(不可加)、seal()(不可加减)、freeze()(不可加减改)
iterator
区别
其实更多的要区分的是for in和Object.keys
for in可以遍历所有可枚举项,包括原型中的内容
浅显的理解,我们可以把
| 1 | 
 | 
由上文可知对象不可迭代但可以被枚举
| 1 | 
 | 
对象的维度
属性
继承
方法
- 首先遍历所有数值键,按照数值升序排列。
- 其次遍历所有字符串键,按照加入时间升序排列。
- 最后遍历所有 Symbol 键,按照加入时间升序排列。
- //pass
以后完善