for..of 与 for..in 语句

for..offor..in 语句都遍历列表;但是,迭代的值不同,for..in 返回被迭代对象的键列表,而 for..of 返回被迭代对象的数字属性的值列表。

Both for..of and for..in statements iterate over lists; the values iterated on are different though, for..in returns a list of keys on the object being iterated, whereas for..of returns a list of values of the numeric properties of the object being iterated.

lqBnrRjeVRv9tSUippdqADx1LeL1rWZ9XFUgjh7EZ6O6I5aNuzzX6sri99Qvk+c5H/qkWutakYrsLNjQKoY93aLultwt3JadSz4e8UUOW4tuKwg0OlBg1ZVQeWtFR7EjqjL9eqWkF70ixWZIRIMOOzo6LvNJFUH3M7gSlWsSkfA=

let list = [4, 5, 6];

for (let i in list) {
  console.log(i); // "0", "1", "2",
}

for (let i of list) {
  console.log(i); // 4, 5, 6
}

6NPKA1pQ4ylCy6PIqGdS8mbwcQ8p4j/gQVPOlbrWKrCl1h+927ic+Xh0a7I2bpkBq6FoGq3fMSnTNtzomMqcvV2UsNp2CvWBz/qu9dW3ieg+yATUQSwq8ZVB9murYERo4fdwus8z4ozRUm4IHg/MftYR9UwVN/JOH1b7cOmk6JG9VEcWNBCbb4qmpuCXh5E1esxaTM0Z+LlYDqfrLDJa7CKg4yjz1DgwuitA5xpg/AB5nrIxGCkXVANXQLRTJhri8FUG5gRrj/ZkMfps47MGJRoPvEr3obWZADDKPvCxM+Of9uZqMXPp+3DTkd6CfjAlv7QFia6uibcc4kelATeigVDu8M6URIgA6WXueCHaY/3xx9r69/br+omOe4NIF9W76e2XX4mkbMDdLl551ZrTVUKRthJ0bB5qGFIPt87UrAo3oqIm1Eyw5GDuFIovbK0iaBAv66u3pssAPJf4swKnODw8hRN6Fsoop+aHZ5Cn6xI2EFYL5FFYPwOIrEZOFFiekypKAuYtO3VqU+1y430mnddAFosBqPUYHxwXARWb1xt80HP0ZbughuR3jNe7znCZ3ytkeH6fq4MTzvU4RvdLw+baXhNv+W6uDxpW4U+OO3yhqhlbJNbSwzpNku3n8I6sNrnlHET69Orov6g8HLdRHqP7btMOS8ya4f+UTmHHxL+kaqPzNH0wONhZrJtZxMu3sqx+cvq9j//jTT6DFDn+6zCEdybSUA2/Bq7U+usrSyoKL7yEB9QXZM8qHiV0mGkxYOXj9ocD6quXUE3NKFhmoIQRjan3oLg0YLn4988Ikr3xH0YO98n9NJOCLywi9YFl6wMmBAw2WK0aFFlZn2XdMDrZ9gJajRZ/FogobtsWLiDP8Ic9hAZvgEFVt7C3XajirwSXXfOF/ypCwUq8um3RUJYWrXH25gF9kPR0MEAZzDOb4xM9vsyyb1vasYS3ogahqd5rYpbdqzAMVTzzTJ7Ybg==

let pets = new Set(["Cat", "Dog", "Hamster"]);
pets["species"] = "mammals";

for (let pet in pets) {
  console.log(pet); // "species"
}

for (let pet of pets) {
  console.log(pet); // "Cat", "Dog", "Hamster"
}