百度前端面试题:for in 和 for of的区别详解以及为for in的输出顺序 - 知乎
以该页面为例,我稍微总结一点东西:
-
在这⾥我们把对象中的数字属性称为 「排序属性」,在V8中被称为 elements,字符串属性就被称为 「常规属性」, 在V8中被称为 properties。
-
对于
arr=document.querySelectorAll('h1')
,依次采取两种遍历的区别:
for in是广义的,会输出arr的所有属性,包括下标,方法...
而for of是狭义的,只输出下标对应的dom
所以可以认为以下两种写法等效
for (const i in arr) {
if(arr[i]instanceof HTMLElement)console.log(arr[i])
}
和
for (const i of arr) {
console.log(i)
}
看懂的人请为我点赞吧