遍歷數(shù)組
最初
for (var index = 0; index < myArray.length; index++) {
console.log(myArray[index]);
}
ES5發(fā)布后
myArray.forEach(function (value) {
console.log(value);
});
這種方法也有一個小缺陷:你不能使用break語句中斷循環(huán)末捣,也不能使用return語句返回到外層函數(shù)。
for-in循環(huán)用于普通對象屬性遍歷,千萬別用于數(shù)組
for (var index in myArray) { // 千萬別這樣做
console.log(myArray[index]);
}
ES6發(fā)布后的新語法,與forEach()不同的是勾扭,它可以正確響應(yīng)break、continue和return語句
for (var value of myArray) {
console.log(value);
}
for-of循環(huán)也可以遍歷其它的集合
字符串遍歷
for (var chr of "") {
alert(chr);
}
Set對象遍歷
var uniqueWords = new Set(words);
for (var word of uniqueWords) {
console.log(word);
}
Map對象遍歷
for (var [key, value] of phoneBookMap) {
console.log(key + "'s phone number is: " + value);
}
for-of循環(huán)不支持普通對象蕾久,但可以用for-in循環(huán)或內(nèi)建的Object.keys()方法:
// 向控制臺輸出對象的可枚舉屬性
for (var key of Object.keys(someObject)) {
console.log(key + ": " + someObject[key]);
}