SOURCE

// for of 遍历器 (可迭代对象)
let arr = [1,2,3,4,5]

// ①、数组迭代
for (let val of arr) {
    console.log(val,'--->数组迭代')
}

// ②、字符串迭代
let str = 'abcde'
for(let val of str) {
   console.log(val,'--->字符串迭代')
}

// ③、对象迭代
let obj = {
    from:1,
    to:5
}

// 对象如果想要迭代的话需要给对象添加一个属性 Symbol.iterator,且需要返回一个迭代器对象(一个含有next方法的对象)
// for of迭代时,会调用这个方法,没有的话会报错
// next方法返回的格式数据必须是 {done:false,value:any},当 done为true时表示迭代结束
obj[Symbol.iterator] = function(){
    return {
        from:this.from,
        to:this.to,
        next(){
            return this.from<this.to?{done:false,value:this.from++}:{done:true}
        }
    }
}

// for of 迭代
for(let val of obj){
    console.log(val,'--->对象迭代')
}
console 命令行工具 X clear

                    
>
console