JavaScript tiếp tục không có cú pháp

Bạn đã thấy câu lệnh break được sử dụng trong chương trước của hướng dẫn này. Nó được sử dụng để "nhảy ra" của một câu nói switch()

Câu lệnh break cũng có thể được sử dụng để nhảy ra khỏi vòng lặp

Thí dụ

for (cho i = 0; i < 10; i++) {
nếu (i === 3) { ngắt;
văn bản += "Số là " + i + "
“;
}

Tự mình thử »

Trong ví dụ trên, câu lệnh break kết thúc vòng lặp ("ngắt" vòng lặp) khi bộ đếm vòng lặp (i) là 3


Tuyên bố tiếp tục

Câu lệnh continue ngắt một lần lặp (trong vòng lặp), nếu một điều kiện xác định xảy ra và tiếp tục với lần lặp tiếp theo trong vòng lặp

Ví dụ này bỏ qua giá trị của 3

Thí dụ

for (cho i = 0; i < 10; i++) {
nếu (i === 3) { tiếp tục;
văn bản += "Số là " + i + "
“;
}

Tự mình thử »



Nhãn JavaScript

Để gắn nhãn các câu lệnh JavaScript, bạn đặt trước các câu lệnh một tên nhãn và dấu hai chấm

Các câu lệnh breakcontinue là những câu lệnh JavaScript duy nhất có thể "nhảy ra khỏi" một khối mã

cú pháp

phá vỡ tên nhãn;

tiếp tục tên nhãn;

Chỉ có thể sử dụng câu lệnh continue (có hoặc không có tham chiếu nhãn) để bỏ qua một lần lặp

Câu lệnh break, không có tham chiếu nhãn, chỉ có thể được sử dụng để nhảy ra khỏi vòng lặp hoặc công tắc

Vâng, đây là những suy nghĩ của tôi cho đến gần đây. “chỉ là một vòng lặpfor thông thường, nơi bạn có thể dễ dàng sử dụng break hoặc return hoặc

const array = [1, 2, 3, 4];const callback = function(element) {
console.log(element);

if (element === 2)
return; // would this make a difference? no.
}
for (let i = 0; i < array.length; i++) {
callback(array[i]);
}
// Output: 1 2 3 4
0“

Hôm nay, tôi sẽ chỉ cho bạn 3 điều có thể bạn chưa biết về vòng lặp forEach

1. 'return' không ngừng lặp

Bạn có nghĩ đoạn mã dưới đây sẽ in ra dòng chữ

const array = [1, 2, 3, 4];const callback = function(element) {
console.log(element);

if (element === 2)
return; // would this make a difference? no.
}
for (let i = 0; i < array.length; i++) {
callback(array[i]);
}
// Output: 1 2 3 4
2 rồi dừng lại không?

array = [1, 2, 3, 4];array.forEach(function (element) {
console.log(element);

if (element === 2)
return;

});
// Output: 1 2 3 4

Không, nó sẽ không. Nếu bạn có nền tảng về Java, có lẽ bạn sẽ tự hỏi làm thế nào điều đó có thể xảy ra?

Lý do là chúng ta đang chuyển một hàm gọi lại trong hàm forEach của mình, hàm này hoạt động giống như một hàm bình thường và được áp dụng cho từng phần tử bất kể chúng ta có return từ một i hay không. e. khi phần tử là 2 trong trường hợp của chúng tôi

Từ tài liệu MDN chính thức

Không có cách nào để dừng hoặc phá vỡ một vòng lặp

const array = [1, 2, 3, 4];const callback = function(element) {
console.log(element);

if (element === 2)
return; // would this make a difference? no.
}
for (let i = 0; i < array.length; i++) {
callback(array[i]);
}
// Output: 1 2 3 4
5 ngoài việc ném một ngoại lệ. Nếu bạn cần hành vi như vậy, phương pháp
const array = [1, 2, 3, 4];const callback = function(element) {
console.log(element);

if (element === 2)
return; // would this make a difference? no.
}
for (let i = 0; i < array.length; i++) {
callback(array[i]);
}
// Output: 1 2 3 4
5 là công cụ sai

Hãy viết lại mã từ trên

const array = [1, 2, 3, 4];const callback = function(element) {
console.log(element);

if (element === 2)
return; // would this make a difference? no.
}
for (let i = 0; i < array.length; i++) {
callback(array[i]);
}
// Output: 1 2 3 4

Câu lệnh return sẽ không tạo ra bất kỳ sự khác biệt nào, vì chúng tôi áp dụng hàm cho từng phần tử ở mỗi lần lặp, do đó, bạn có thoát ra sau khi tôi không quan tâm. e. khi phần tử là 2

2. Bạn không thể 'phá vỡ'

Bạn có nghĩ vòng lặp aforEach sẽ break trong ví dụ bên dưới không?

const array = [1, 2, 3, 4];array.forEach(function(element) {
console.log(element);

if (element === 2)
break;
});
// Output: Uncaught SyntaxError: Illegal break statement

Không, nó thậm chí sẽ không chạy vì lệnh break về mặt kỹ thuật không nằm trong một vòng lặp

Giải pháp?

Chỉ cần sử dụng một vòng lặp for bình thường. Sẽ không ai cười nhạo bạn

const array = [1, 2, 3, 4];for (let i = 0; i < array.length; i++) {
console.log(array[i]);

if (array[i] === 2)
break;
}
// Output: 1 2
3. Bạn không thể 'tiếp tục'

Bạn có muốn đoạn mã bên dưới bỏ qua việc in

const array = [1, 2, 3, 4];array.forEach(function(element) {
console.log(element);

if (element === 2)
break;
});
// Output: Uncaught SyntaxError: Illegal break statement
2 ra bàn điều khiển và chỉ hiển thị
const array = [1, 2, 3, 4];array.forEach(function(element) {
console.log(element);

if (element === 2)
break;
});
// Output: Uncaught SyntaxError: Illegal break statement
3 không?

const array = [1, 2, 3, 4];array.forEach(function (element) {
if (element === 2)
continue;

console.log(element);
});
// Output: Uncaught SyntaxError: Illegal continue statement: no surrounding iteration statement

Không, nó thậm chí sẽ không chạy vì lệnh

const array = [1, 2, 3, 4];const callback = function(element) {
console.log(element);

if (element === 2)
return; // would this make a difference? no.
}
for (let i = 0; i < array.length; i++) {
callback(array[i]);
}
// Output: 1 2 3 4
0 không nằm trong một vòng lặp, tương tự như lệnh break

Giải pháp?

Chỉ cần sử dụng lại vòng lặp for bình thường

for (let i = 0; i < array.length; i++) {
if (array[i] === 2)
continue;

console.log(array[i]);
}
// Output: 1 3 4

Điều đó là vậy đó. Hy vọng bạn đã học được một cái gì đó mới ngày hôm nay

Tôi hiện đang xây dựng thị trường NFT cho mọi người trên Solana. Nếu bạn muốn tìm hiểu thêm về nó, vui lòng kiểm tra www. đổi. nghệ thuật 👨‍💻

Làm cách nào để bỏ qua một lần lặp trong JavaScript?

Chỉ có thể sử dụng câu lệnh continue (có hoặc không có tham chiếu nhãn) để bỏ qua một vòng lặp . Câu lệnh break, không có tham chiếu nhãn, chỉ có thể được sử dụng để nhảy ra khỏi vòng lặp hoặc chuyển đổi.

Chúng tôi có thể sử dụng continue trong forEach JavaScript không?

Để tiếp tục trong vòng lặp JavaScript forEach bạn không thể sử dụng câu lệnh continue vì bạn sẽ gặp lỗi . Thay vào đó, bạn sẽ cần sử dụng câu lệnh return thay cho câu lệnh continue vì nó sẽ hoạt động theo cách tương tự khi sử dụng forEach vì bạn chuyển một hàm gọi lại vào câu lệnh forEach.

Làm cách nào để sử dụng vòng lặp continue in forEach trong JavaScript?

Sử dụng trả về . Khi bạn quay lại , bạn bỏ qua phần còn lại của lệnh gọi lại forEach() và JavaScript chuyển sang bước lặp tiếp theo của vòng lặp. // In "2, 4" [1, 2, 3, 4, 5]. return in a forEach() callback is equivalent to continue in a conventional for loop. When you return , you skip the rest of the forEach() callback and JavaScript goes on to the next iteration of the loop. // Prints "2, 4" [1, 2, 3, 4, 5].

Làm cách nào để bỏ qua một lần lặp trong JavaScript vòng lặp forEach?

Bạn chỉ cần quay lại nếu muốn bỏ qua bước lặp hiện tại . Vì bạn đang ở trong một hàm, nếu bạn quay lại trước khi làm bất kỳ điều gì khác, thì bạn đã bỏ qua việc thực thi mã bên dưới câu lệnh return một cách hiệu quả.