Both for..of and statements iterate over lists; the values iterated on are different though.

for..of returns a list of values of the numeric properties of the object being iterated. returns a list of keys on the object being iterated.

Let’s see an example that demonstrates this distinction:

let list = ["Tech", "Xposer", "Article"];

for (let i of list) { 

console.log(i); // "Tech", "Xposer", "Article" 


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

Note: When targeting an ES5 or ES3, iterators (i.e., for..of & ) are only allowed on values of Array type.

Happy Coding… 🙂