💚写在前面:之前在👉获取对象属性的个数一篇提到了几个常用的Object的API,这里区别一下for...in
和for...of
,迷迷瞪瞪的,我经常给搞混。
1.for...in
遍历 key(原理:Object.keys()
);for...of
遍历value
2.for...in
获取自身和继承的可枚举属性(配合hasOwnProperty()
,判断是否是自身属性) ;for...of
获取自身可迭代属性的值
3.for...in
用来遍历对象,不建议遍历数组(∵输出的顺序是不固定的);for...of
用来遍历字符串,数组,Set/Map结构,类数组对象,可迭代对象,Generator 对象
补充:
1.for…of
循环不能循环普通的对象,对普通对象的属性遍历推荐使用for…in
2.
迭代的对象的变量值是null
或者undefined
,for...in
不执行循环体,建议在使用for...in
循环之前,先检查该对象的值是不是null
或者undefined
参考资料: