La diferencia entre for in y for of
La diferencia entre los dos métodos es que ambos se pueden usar para atravesar
① tanto for in como for of pueden recorrer la matriz, la salida de for in es el subíndice de índice de la matriz y la salida de for of es el índice de cada elemento del valor de la matriz.
const arr = [1,2,3,4]
// for ... in
for (const key in arr){
console.log(key) // 输出 0,1,2,3
}
// for ... of
for (const key of arr){
console.log(key) // 输出 1,2,3,4
}
② for in puede atravesar objetos, for of no puede atravesar objetos y solo puede atravesar objetos con interfaces iteradoras, como Set, Map, String, Array
const object = {
name: 'lx', age: 23 }
// for ... in
for (const key in object) {
console.log(key) // 输出 name,age
console.log(object[key]) // 输出 lx,23
}
// for ... of
for (const key of object) {
console.log(key) // 报错 Uncaught TypeError: object is not iterable
}
③Objeto de matriz. for in atraviesa las propiedades del objeto y las propiedades en la cadena prototipo, y for of atraviesa los objetos de la matriz.
const list = [{
name: 'lx' }, {
age: 23 }]
for (const val of list) {
console.log(val) // 输出{ name: 'lx' }, { age: 23 }
for (const key in val) {
console.log(val[key]) // 输出 lx,23
}
}