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
以后完善