for... of語(yǔ)句創(chuàng)建一個(gè)循環(huán)遍歷可迭代對(duì)象,包括:內(nèi)置String,Array,類(lèi)似Array的對(duì)象(例如,參數(shù)或NodeList)和用戶(hù)定義的可迭代對(duì)象。
它調(diào)用一個(gè)自定義迭代鉤子,其中包含要為對(duì)象的每個(gè)不同屬性的值執(zhí)行的語(yǔ)句。
for ... in 和 for ... of語(yǔ)句都會(huì)迭代某些內(nèi)容。它們之間的主要區(qū)別在于它們迭代的內(nèi)容:
for...in - 語(yǔ)句遍歷對(duì)象的枚舉的屬性,以任意順序
for...of - 語(yǔ)句遍歷可迭代對(duì)象定義要遍歷的數(shù)據(jù),可迭代對(duì)象(包括 Array,Map,Set,String,TypedArray,arguments 對(duì)象等等)上創(chuàng)建一個(gè)迭代循環(huán),調(diào)用自定義迭代鉤子,并為每個(gè)不同屬性的值執(zhí)行語(yǔ)句。
for (variable of iterable) {
//要執(zhí)行的語(yǔ)句
}let iterable = [10, 20, 30, 40, 50];
for (let x of iterable) {
document.write(x);
}測(cè)試看看?/?表格中的數(shù)字指定了完全支持for ... of語(yǔ)句的第一個(gè)瀏覽器版本:
| Statement | ![]() | ![]() | ![]() | ![]() | ![]() |
| for...of | 38 | 13 | 25 | 8 | 不支持 |
| 參數(shù) | 描述 |
|---|---|
| variable | 在每次迭代中,將不同屬性的值分配給variable |
| iterable | 迭代其可迭代屬性的對(duì)象 |
| JavaScript版本: | ECMAScript 1 |
|---|
JavaScript參考:JavaScript for...in語(yǔ)句