Câu lệnh
7 thực hiện một vòng lặp hoạt động trên một chuỗi các giá trị có nguồn gốc từ một đối tượng có thể lặp lại. Các đối tượng có thể lặp lại bao gồm các trường hợp tích hợp như const iterable = [10, 20, 30];
for [let value of iterable] {
value += 1;
console.log[value];
}
// 11
// 21
// 31
8, const iterable = [10, 20, 30];
for [let value of iterable] {
value += 1;
console.log[value];
}
// 11
// 21
// 31
9, const iterable = [10, 20, 30];
for [let value of iterable] {
value += 1;
console.log[value];
}
// 11
// 21
// 31
0, let async;
for [async of [1, 2, 3]]; // SyntaxError: The left-hand side of a for-of loop may not be 'async'.
1, let async;
for [async of [1, 2, 3]]; // SyntaxError: The left-hand side of a for-of loop may not be 'async'.
2, let async;
for [async of [1, 2, 3]]; // SyntaxError: The left-hand side of a for-of loop may not be 'async'.
3 [và các bộ sưu tập DOM khác], cũng như đối tượng let async;
for [async of [1, 2, 3]]; // SyntaxError: The left-hand side of a for-of loop may not be 'async'.
4, các trình tạo được tạo ra bởi các chức năng của trình tạo và lặp đi lặp lại của người dùng.let async;
for [async of [1, 2, 3]]; // SyntaxError: The left-hand side of a for-of loop may not be 'async'.
7 statement executes a loop that operates on a sequence of values sourced from an iterable object. Iterable objects include instances of built-ins such as const iterable = [10, 20, 30];
for [let value of iterable] {
value += 1;
console.log[value];
}
// 11
// 21
// 31
8, const iterable = [10, 20, 30];
for [let value of iterable] {
value += 1;
console.log[value];
}
// 11
// 21
// 31
9, const iterable = [10, 20, 30];
for [let value of iterable] {
value += 1;
console.log[value];
}
// 11
// 21
// 31
0, let async;
for [async of [1, 2, 3]]; // SyntaxError: The left-hand side of a for-of loop may not be 'async'.
1,
let async;
for [async of [1, 2, 3]]; // SyntaxError: The left-hand side of a for-of loop may not be 'async'.
2, let async;
for [async of [1, 2, 3]]; // SyntaxError: The left-hand side of a for-of loop may not be 'async'.
3 [and other DOM collections], as well as the let async;
for [async of [1, 2, 3]]; // SyntaxError: The left-hand side of a for-of loop may not be 'async'.
4 object,
generators produced by generator functions, and user-defined iterables.let async;
for [async of [1, 2, 3]]; // SyntaxError: The left-hand side of a for-of loop may not be 'async'.
Thử nó
Cú pháp
for [variable of iterable]
statement
let async;
for [async of [1, 2, 3]]; // SyntaxError: The left-hand side of a for-of loop may not be 'async'.
5Nhận được một giá trị từ chuỗi trên mỗi lần lặp. Có thể là một tuyên bố với
let async;
for [async of [1, 2, 3]]; // SyntaxError: The left-hand side of a for-of loop may not be 'async'.
6, let async;
for [async of [1, 2, 3]]; // SyntaxError: The left-hand side of a for-of loop may not be 'async'.
7 hoặc let async;
for [async of [1, 2, 3]]; // SyntaxError: The left-hand side of a for-of loop may not be 'async'.
8 hoặc mục tiêu gán [ví dụ: biến được khai báo trước đó hoặc thuộc tính đối tượng].let async;
for [async of [1, 2, 3]]; // SyntaxError: The left-hand side of a for-of loop may not be 'async'.
9Một đối tượng có thể đi được. Nguồn của chuỗi các giá trị mà vòng lặp hoạt động.
const iterable = [10, 20, 30];
for [const value of iterable] {
console.log[value];
}
// 10
// 20
// 30
0Một tuyên bố sẽ được thực thi trên mỗi lần lặp. Có thể tham chiếu
let async;
for [async of [1, 2, 3]]; // SyntaxError: The left-hand side of a for-of loop may not be 'async'.
5. Bạn có thể sử dụng câu lệnh BLOCK để thực thi nhiều câu lệnh.Sự mô tả
Một vòng lặp
const iterable = [10, 20, 30];
for [let value of iterable] {
value += 1;
console.log[value];
}
// 11
// 21
// 31
7 hoạt động trên các giá trị có nguồn gốc từ một thứ khác nhau theo thứ tự tuần tự. Mỗi hoạt động của vòng lặp trên một giá trị được gọi là một lần lặp và vòng lặp được cho là lặp đi lặp lại. Mỗi lần lặp thực thi các câu lệnh có thể đề cập đến giá trị chuỗi hiện tại.Khi một vòng lặp
const iterable = [10, 20, 30];
for [let value of iterable] {
value += 1;
console.log[value];
}
// 11
// 21
// 31
7 lặp lại trên một điều khác, nó gọi là phương thức ____34 của ITEBELBER, trả về một trình lặp, và sau đó gọi liên tục gọi phương thức const iterable = [10, 20, 30];
for [const value of iterable] {
console.log[value];
}
// 10
// 20
// 30
5 của iterator để tạo ra chuỗi các giá trị được gán cho let async;
for [async of [1, 2, 3]]; // SyntaxError: The left-hand side of a for-of loop may not be 'async'.
5.Một vòng lặp
const iterable = [10, 20, 30];
for [let value of iterable] {
value += 1;
console.log[value];
}
// 11
// 21
// 31
7 thoát ra khi trình lặp hoàn thành [phương thức const iterable = [10, 20, 30];
for [const value of iterable] {
console.log[value];
}
// 10
// 20
// 30
5 của trình lặp trả về một đối tượng chứa const iterable = [10, 20, 30];
for [const value of iterable] {
console.log[value];
}
// 10
// 20
// 30
9]. Bạn cũng có thể sử dụng các báo cáo luồng điều khiển để thay đổi luồng điều khiển thông thường. const iterable = "boo";
for [const value of iterable] {
console.log[value];
}
// "b"
// "o"
// "o"
0 ra khỏi vòng lặp và đi đến câu lệnh đầu tiên sau thân vòng, trong khi const iterable = "boo";
for [const value of iterable] {
console.log[value];
}
// "b"
// "o"
// "o"
1 bỏ qua phần còn lại của các câu lệnh của lần lặp hiện tại và tiến hành lần lặp tiếp theo.Nếu vòng lặp
const iterable = [10, 20, 30];
for [let value of iterable] {
value += 1;
console.log[value];
}
// 11
// 21
// 31
7 thoát ra sớm [ví dụ: câu lệnh const iterable = "boo";
for [const value of iterable] {
console.log[value];
}
// "b"
// "o"
// "o"
0 gặp phải hoặc lỗi bị loại bỏ], phương thức const iterable = "boo";
for [const value of iterable] {
console.log[value];
}
// "b"
// "o"
// "o"
4 của iterator được gọi để thực hiện bất kỳ việc dọn dẹp nào.Phần
let async;
for [async of [1, 2, 3]]; // SyntaxError: The left-hand side of a for-of loop may not be 'async'.
5 của const iterable = [10, 20, 30];
for [let value of iterable] {
value += 1;
console.log[value];
}
// 11
// 21
// 31
7 chấp nhận bất cứ điều gì có thể đến trước toán tử const iterable = "boo";
for [const value of iterable] {
console.log[value];
}
// "b"
// "o"
// "o"
7. Bạn có thể sử dụng let async;
for [async of [1, 2, 3]]; // SyntaxError: The left-hand side of a for-of loop may not be 'async'.
6 để khai báo biến miễn là nó không được chỉ định lại trong thân vòng lặp [nó có thể thay đổi giữa các lần lặp, bởi vì đó là hai biến riêng biệt]. Nếu không, bạn có thể sử dụng let async;
for [async of [1, 2, 3]]; // SyntaxError: The left-hand side of a for-of loop may not be 'async'.
7.const iterable = [10, 20, 30];
for [let value of iterable] {
value += 1;
console.log[value];
}
// 11
// 21
// 31
Lưu ý: Mỗi lần lặp tạo ra một biến mới. Việc chỉ định lại biến bên trong cơ thể vòng lặp không ảnh hưởng đến giá trị ban đầu trong ITEBLE [một mảng, trong trường hợp này]. Each iteration creates a new variable. Reassigning the variable inside the loop body does not affect the original value in the iterable [an array, in this case].
Bạn cũng có thể sử dụng phá hủy hoặc thuộc tính đối tượng như
const iterable = new Uint8Array[[0x00, 0xff]];
for [const value of iterable] {
console.log[value];
}
// 0
// 255
0.Tuy nhiên, một quy tắc đặc biệt cấm sử dụng
const iterable = new Uint8Array[[0x00, 0xff]];
for [const value of iterable] {
console.log[value];
}
// 0
// 255
1 làm tên biến. Đây là cú pháp không hợp lệ:let async;
for [async of [1, 2, 3]]; // SyntaxError: The left-hand side of a for-of loop may not be 'async'.
Điều này là để tránh sự mơ hồ của cú pháp với mã hợp lệ
const iterable = new Uint8Array[[0x00, 0xff]];
for [const value of iterable] {
console.log[value];
}
// 0
// 255
2, đó là vòng lặp const iterable = new Uint8Array[[0x00, 0xff]];
for [const value of iterable] {
console.log[value];
}
// 0
// 255
3.Ví dụ
Lặp lại trên một mảng
const iterable = [10, 20, 30];
for [const value of iterable] {
console.log[value];
}
// 10
// 20
// 30
Lặp lại trên một chuỗi
Chuỗi được lặp lại bởi các điểm mã Unicode.
const iterable = "boo";
for [const value of iterable] {
console.log[value];
}
// "b"
// "o"
// "o"
Lặp lại trên một kiểu đánh máy
const iterable = new Uint8Array[[0x00, 0xff]];
for [const value of iterable] {
console.log[value];
}
// 0
// 255
Lặp lại trên một bản đồ
const iterable = new Map[[
["a", 1],
["b", 2],
["c", 3],
]];
for [const entry of iterable] {
console.log[entry];
}
// ['a', 1]
// ['b', 2]
// ['c', 3]
for [const [key, value] of iterable] {
console.log[value];
}
// 1
// 2
// 3
Lặp lại trên một bộ
const iterable = new Set[[1, 1, 2, 2, 3, 3]];
for [const value of iterable] {
console.log[value];
}
// 1
// 2
// 3
Lặp lại đối tượng đối số
Bạn có thể lặp lại đối tượng
let async;
for [async of [1, 2, 3]]; // SyntaxError: The left-hand side of a for-of loop may not be 'async'.
4 để kiểm tra tất cả các tham số được truyền vào một hàm.function foo[] {
for [const value of arguments] {
console.log[value];
}
}
foo[1, 2, 3];
// 1
// 2
// 3
Lặp lại trên một cái gật đầu
Ví dụ sau đây thêm một lớp
const iterable = new Uint8Array[[0x00, 0xff]];
for [const value of iterable] {
console.log[value];
}
// 0
// 255
5 vào các đoạn văn trực tiếp của phần tử const iterable = new Uint8Array[[0x00, 0xff]];
for [const value of iterable] {
console.log[value];
}
// 0
// 255
6 bằng cách lặp lại trong bộ sưu tập let async;
for [async of [1, 2, 3]]; // SyntaxError: The left-hand side of a for-of loop may not be 'async'.
3 DOM.const articleParagraphs = document.querySelectorAll["article > p"];
for [const paragraph of articleParagraphs] {
paragraph.classList.add["read"];
}
Lặp đi lặp lại có thể xác định được do người dùng xác định
Lặp lại một đối tượng với phương thức
const iterable = new Uint8Array[[0x00, 0xff]];
for [const value of iterable] {
console.log[value];
}
// 0
// 255
8 trả về trình lặp tùy chỉnh:const iterable = [10, 20, 30];
for [let value of iterable] {
value += 1;
console.log[value];
}
// 11
// 21
// 31
0Lặp lại một đối tượng với phương thức máy phát
const iterable = new Uint8Array[[0x00, 0xff]];
for [const value of iterable] {
console.log[value];
}
// 0
// 255
8:const iterable = [10, 20, 30];
for [let value of iterable] {
value += 1;
console.log[value];
}
// 11
// 21
// 31
1Có thể lặp lại được [trình lặp với phương pháp
const iterable = [10, 20, 30];
for [const value of iterable] {
console.log[value];
}
// 10
// 20
// 30
4 trả về const iterable = new Map[[
["a", 1],
["b", 2],
["c", 3],
]];
for [const entry of iterable] {
console.log[entry];
}
// ['a', 1]
// ['b', 2]
// ['c', 3]
for [const [key, value] of iterable] {
console.log[value];
}
// 1
// 2
// 3
1] là một kỹ thuật khá phổ biến để làm cho các trình lặp có thể sử dụng được trong các cú pháp mong đợi các phép lặp, chẳng hạn như const iterable = [10, 20, 30];
for [let value of iterable] {
value += 1;
console.log[value];
}
// 11
// 21
// 31
7.const iterable = [10, 20, 30];
for [let value of iterable] {
value += 1;
console.log[value];
}
// 11
// 21
// 31
2Lặp lại một máy phát điện
const iterable = [10, 20, 30];
for [let value of iterable] {
value += 1;
console.log[value];
}
// 11
// 21
// 31
3Thoát ra sớm
Việc thực hiện câu lệnh
const iterable = "boo";
for [const value of iterable] {
console.log[value];
}
// "b"
// "o"
// "o"
0 trong vòng lặp đầu tiên khiến nó thoát ra sớm. Trình lặp vẫn chưa hoàn thành, vì vậy vòng lặp thứ hai sẽ tiếp tục từ nơi cái đầu tiên dừng lại.const iterable = [10, 20, 30];
for [let value of iterable] {
value += 1;
console.log[value];
}
// 11
// 21
// 31
4Máy phát thực hiện phương thức
const iterable = "boo";
for [const value of iterable] {
console.log[value];
}
// "b"
// "o"
// "o"
4, khiến hàm máy phát quay lại sớm khi vòng lặp thoát. Điều này làm cho máy phát điện không thể tái sử dụng giữa các vòng lặp.const iterable = [10, 20, 30];
for [let value of iterable] {
value += 1;
console.log[value];
}
// 11
// 21
// 31
5Sự khác biệt giữa ... của ... và cho ... trong
Cả hai câu
const iterable = new Map[[
["a", 1],
["b", 2],
["c", 3],
]];
for [const entry of iterable] {
console.log[entry];
}
// ['a', 1]
// ['b', 2]
// ['c', 3]
for [const [key, value] of iterable] {
console.log[value];
}
// 1
// 2
// 3
5 và const iterable = [10, 20, 30];
for [let value of iterable] {
value += 1;
console.log[value];
}
// 11
// 21
// 31
7 lặp lại một cái gì đó. Sự khác biệt chính giữa họ là trong những gì họ lặp lại.Tuyên bố
const iterable = new Map[[
["a", 1],
["b", 2],
["c", 3],
]];
for [const entry of iterable] {
console.log[entry];
}
// ['a', 1]
// ['b', 2]
// ['c', 3]
for [const [key, value] of iterable] {
console.log[value];
}
// 1
// 2
// 3
5 lặp lại các thuộc tính chuỗi có thể suy định của một đối tượng, trong khi câu lệnh const iterable = [10, 20, 30];
for [let value of iterable] {
value += 1;
console.log[value];
}
// 11
// 21
// 31
7 lặp lại các giá trị mà đối tượng có thể lặp lại được lặp lại.Ví dụ sau đây cho thấy sự khác biệt giữa vòng lặp
const iterable = [10, 20, 30];
for [let value of iterable] {
value += 1;
console.log[value];
}
// 11
// 21
// 31
7 và vòng const iterable = new Map[[
["a", 1],
["b", 2],
["c", 3],
]];
for [const entry of iterable] {
console.log[entry];
}
// ['a', 1]
// ['b', 2]
// ['c', 3]
for [const [key, value] of iterable] {
console.log[value];
}
// 1
// 2
// 3
5 khi được sử dụng với const iterable = [10, 20, 30];
for [let value of iterable] {
value += 1;
console.log[value];
}
// 11
// 21
// 31
8.const iterable = [10, 20, 30];
for [let value of iterable] {
value += 1;
console.log[value];
}
// 11
// 21
// 31
6Đối tượng
let async;
for [async of [1, 2, 3]]; // SyntaxError: The left-hand side of a for-of loop may not be 'async'.
9 kế thừa các thuộc tính const iterable = new Set[[1, 1, 2, 2, 3, 3]];
for [const value of iterable] {
console.log[value];
}
// 1
// 2
// 3
3 và const iterable = new Set[[1, 1, 2, 2, 3, 3]];
for [const value of iterable] {
console.log[value];
}
// 1
// 2
// 3
4 vì nó chứa cả const iterable = new Set[[1, 1, 2, 2, 3, 3]];
for [const value of iterable] {
console.log[value];
}
// 1
// 2
// 3
5 và const iterable = new Set[[1, 1, 2, 2, 3, 3]];
for [const value of iterable] {
console.log[value];
}
// 1
// 2
// 3
6 trong chuỗi nguyên mẫu của nó.Vòng lặp
const iterable = new Map[[
["a", 1],
["b", 2],
["c", 3],
]];
for [const entry of iterable] {
console.log[entry];
}
// ['a', 1]
// ['b', 2]
// ['c', 3]
for [const [key, value] of iterable] {
console.log[value];
}
// 1
// 2
// 3
5 chỉ ghi lại các thuộc tính có thể suy giảm của đối tượng let async;
for [async of [1, 2, 3]]; // SyntaxError: The left-hand side of a for-of loop may not be 'async'.
9. Nó không ghi nhật ký các thành phần mảng const iterable = new Set[[1, 1, 2, 2, 3, 3]];
for [const value of iterable] {
console.log[value];
}
// 1
// 2
// 3
9, function foo[] {
for [const value of arguments] {
console.log[value];
}
}
foo[1, 2, 3];
// 1
// 2
// 3
0, function foo[] {
for [const value of arguments] {
console.log[value];
}
}
foo[1, 2, 3];
// 1
// 2
// 3
1 hoặc function foo[] {
for [const value of arguments] {
console.log[value];
}
}
foo[1, 2, 3];
// 1
// 2
// 3
2 vì đó không phải là thuộc tính - chúng là giá trị. Nó ghi nhật ký các chỉ mục mảng cũng như const iterable = new Set[[1, 1, 2, 2, 3, 3]];
for [const value of iterable] {
console.log[value];
}
// 1
// 2
// 3
4 và const iterable = new Set[[1, 1, 2, 2, 3, 3]];
for [const value of iterable] {
console.log[value];
}
// 1
// 2
// 3
3, là các thuộc tính thực tế. Nếu bạn không chắc tại sao các thuộc tính này được lặp lại, có một lời giải thích kỹ lưỡng hơn về cách lặp lại mảng và công việc const iterable = new Map[[
["a", 1],
["b", 2],
["c", 3],
]];
for [const entry of iterable] {
console.log[entry];
}
// ['a', 1]
// ['b', 2]
// ['c', 3]
for [const [key, value] of iterable] {
console.log[value];
}
// 1
// 2
// 3
5.Vòng lặp thứ hai tương tự như thế giới đầu tiên, nhưng nó sử dụng
function foo[] {
for [const value of arguments] {
console.log[value];
}
}
foo[1, 2, 3];
// 1
// 2
// 3
6 để kiểm tra xem thuộc tính có thể tìm thấy có phải là của riêng đối tượng hay không, tức là không được kế thừa. Nếu có, tài sản được ghi lại. Các thuộc tính function foo[] {
for [const value of arguments] {
console.log[value];
}
}
foo[1, 2, 3];
// 1
// 2
// 3
7, function foo[] {
for [const value of arguments] {
console.log[value];
}
}
foo[1, 2, 3];
// 1
// 2
// 3
8, function foo[] {
for [const value of arguments] {
console.log[value];
}
}
foo[1, 2, 3];
// 1
// 2
// 3
9 và const articleParagraphs = document.querySelectorAll["article > p"];
for [const paragraph of articleParagraphs] {
paragraph.classList.add["read"];
}
0 được ghi lại vì chúng là tài sản riêng. Các thuộc tính const iterable = new Set[[1, 1, 2, 2, 3, 3]];
for [const value of iterable] {
console.log[value];
}
// 1
// 2
// 3
4 và const iterable = new Set[[1, 1, 2, 2, 3, 3]];
for [const value of iterable] {
console.log[value];
}
// 1
// 2
// 3
3 không được ghi lại vì chúng được thừa hưởng.Vòng lặp
const iterable = [10, 20, 30];
for [let value of iterable] {
value += 1;
console.log[value];
}
// 11
// 21
// 31
7 lặp lại và ghi nhật ký các giá trị let async;
for [async of [1, 2, 3]]; // SyntaxError: The left-hand side of a for-of loop may not be 'async'.
9, dưới dạng một mảng [có thể lặp lại], được định nghĩa là được lặp lại. Các phần tử của đối tượng const iterable = new Set[[1, 1, 2, 2, 3, 3]];
for [const value of iterable] {
console.log[value];
}
// 1
// 2
// 3
9, function foo[] {
for [const value of arguments] {
console.log[value];
}
}
foo[1, 2, 3];
// 1
// 2
// 3
0, function foo[] {
for [const value of arguments] {
console.log[value];
}
}
foo[1, 2, 3];
// 1
// 2
// 3
1 được hiển thị, nhưng không có thuộc tính nào của đối tượng.Thông số kỹ thuật
Đặc tả ngôn ngữ Ecmascript # Sec-for-in-and-for-for-statements # sec-for-in-and-for-of-statements |
Tính tương thích của trình duyệt web
Bảng BCD chỉ tải trong trình duyệt