for in 和 for of 都是用来遍历属性的。
例1:遍历对象
const obj = {
a: 1,
b: 2,
c: 3
}
for (let i in obj) {
console.log(i)
// a
// b
// c
}
for (let i of obj) {
console.log(i)
// Uncaught TypeError: obj is not iterable 报错了
}
以上代码通过 for in 和 for of 对一个obj对象进行遍历,for in 正常的获取了对象的 key值,分别打印 a、b、c,而 for of却报错了。
例2:遍历数组
const arr = ['a', 'b', 'c']
// for in 循环
for (let i in arr) {
console.log(i)
// 0
// 1
// 2
}
// for of
for (let i of arr) {
console.log(i)
// a
// b
// c
}
总结:
for in 的特点
for … in 循环返回的值都是数据结构的key(即下标)。
for of 特点
for of 循环用来获取一对键值对中的值,而 for in 获取的是键名