11. for....of
语法:<br>for (var value of myArray) {<br> console.log(value);<br>}<br>
循环一个数组
var list = [1,2,3];<br>for(var item of list){<br> console.log(item)<br>}<br>
循环一个字符串
var str = 'hello';<br>for(var item of str){<br> console.log(item)<br>}
循环一个类型化的数组
let iterable = new Uint8Array([0x00, 0xff]);<br><br>for (let value of iterable) {<br> console.log(value);<br>}
循环一个Map
let iterable = new Map([["a", 1], ["b", 2], ["c", 3]]);<br><br>for (let [key, value] of iterable) {<br> console.log(value);<br>}
循环一个 Set
let iterable = new Set([1, 1, 2, 2, 3, 3]);<br><br>for (let value of iterable) {<br> console.log(value);<br>}
循环一个 DOM collection
let articleParagraphs = document.querySelectorAll("article > p");<br><br>for (let paragraph of articleParagraphs) {<br> paragraph.classList.add("read");<br>}
循环一个拥有enumerable属性的对象
for (var key of Object.keys(someObject)) {<br> console.log(key + ": " + someObject[key]);<br>}
循环一个生成器(generators)
function* fibonacci() { // a generator function<br> let [prev, curr] = [0, 1];<br> while (true) {<br> [prev, curr] = [curr, prev + curr];<br> yield curr;<br> }<br>}<br><br>for (let n of fibonacci()) {<br> console.log(n);<br> // truncate the sequence at 1000<br> if (n >= 1000) {<br> break;<br> }<br>}