Chào mừng bạn đến với hướng dẫn về cách hủy bỏ thực thi Javascript. Bạn cần dừng một đoạn script theo cách thủ công vì lý do nào đó?
Javascript phía máy khách không có chức năng hủy bỏ riêng, nhưng có nhiều lựa chọn thay thế khác nhau để hủy bỏ thực thi Javascript
- Trong một chức năng, chỉ cần
7 hoặcfunction test [] { // [A] DO YOUR STUFF AS USUAL console.log["Test started"]; let i = 0; i++; // [B] ABORT - THROW ERROR if [i != 0] { throw new Error["Manual Abort Script"]; } // [C] RETURN RESULT IF OK console.log["This part will not run"]; return i; } // [D] BEST TO TRY-CATCH FOR A GRACEFUL SCRIPT try { let x = test[]; } catch [err] { console.log[err]; }
0function test [] { // [A] DO YOUR STUFF AS USUAL console.log["Test started"]; let i = 0; i++; // [B] ABORT - THROW ERROR if [i != 0] { throw new Error["Manual Abort Script"]; } // [C] RETURN RESULT IF OK console.log["This part will not run"]; return i; } // [D] BEST TO TRY-CATCH FOR A GRACEFUL SCRIPT try { let x = test[]; } catch [err] { console.log[err]; }
- Thủ công
1 trong một chức năngfunction test [] { // [A] DO YOUR STUFF AS USUAL console.log["Test started"]; let i = 0; i++; // [B] ABORT - THROW ERROR if [i != 0] { throw new Error["Manual Abort Script"]; } // [C] RETURN RESULT IF OK console.log["This part will not run"]; return i; } // [D] BEST TO TRY-CATCH FOR A GRACEFUL SCRIPT try { let x = test[]; } catch [err] { console.log[err]; }
- Đặt một chức năng để chạy trên bộ hẹn giờ –
2. Sau đó xóa nó để dừng lại –function test [] { // [A] DO YOUR STUFF AS USUAL console.log["Test started"]; let i = 0; i++; // [B] ABORT - THROW ERROR if [i != 0] { throw new Error["Manual Abort Script"]; } // [C] RETURN RESULT IF OK console.log["This part will not run"]; return i; } // [D] BEST TO TRY-CATCH FOR A GRACEFUL SCRIPT try { let x = test[]; } catch [err] { console.log[err]; }
3function test [] { // [A] DO YOUR STUFF AS USUAL console.log["Test started"]; let i = 0; i++; // [B] ABORT - THROW ERROR if [i != 0] { throw new Error["Manual Abort Script"]; } // [C] RETURN RESULT IF OK console.log["This part will not run"]; return i; } // [D] BEST TO TRY-CATCH FOR A GRACEFUL SCRIPT try { let x = test[]; } catch [err] { console.log[err]; }
- Chạy tập lệnh với các công nhân có thể bị chấm dứt
- Sử dụng
4 để ngăn trang tải và chạyfunction test [] { // [A] DO YOUR STUFF AS USUAL console.log["Test started"]; let i = 0; i++; // [B] ABORT - THROW ERROR if [i != 0] { throw new Error["Manual Abort Script"]; } // [C] RETURN RESULT IF OK console.log["This part will not run"]; return i; } // [D] BEST TO TRY-CATCH FOR A GRACEFUL SCRIPT try { let x = test[]; } catch [err] { console.log[err]; }
- Chỉ dành cho NodeJS – Sử dụng
5 hoặcfunction test [] { // [A] DO YOUR STUFF AS USUAL console.log["Test started"]; let i = 0; i++; // [B] ABORT - THROW ERROR if [i != 0] { throw new Error["Manual Abort Script"]; } // [C] RETURN RESULT IF OK console.log["This part will not run"]; return i; } // [D] BEST TO TRY-CATCH FOR A GRACEFUL SCRIPT try { let x = test[]; } catch [err] { console.log[err]; }
6function test [] { // [A] DO YOUR STUFF AS USUAL console.log["Test started"]; let i = 0; i++; // [B] ABORT - THROW ERROR if [i != 0] { throw new Error["Manual Abort Script"]; } // [C] RETURN RESULT IF OK console.log["This part will not run"]; return i; } // [D] BEST TO TRY-CATCH FOR A GRACEFUL SCRIPT try { let x = test[]; } catch [err] { console.log[err]; }
Nhưng mỗi phương pháp hoạt động như thế nào? . Đọc để tìm hiểu
ⓘ Tôi đã bao gồm một tệp zip chứa tất cả mã nguồn ví dụ khi bắt đầu hướng dẫn này, vì vậy bạn không cần phải sao chép-dán mọi thứ… Hoặc nếu bạn chỉ muốn đi sâu vào
TLDR – TRANG TRÌNH BÀY NHANH
Tải xuống & Ghi chú
TẢI XUỐNG & LƯU Ý
Đầu tiên, đây là liên kết tải xuống mã ví dụ như đã hứa
GHI CHÚ NHANH
Nếu bạn phát hiện ra một lỗi, hãy bình luận bên dưới. Tôi cũng cố gắng trả lời các câu hỏi ngắn, nhưng đó là một người so với cả thế giới… Nếu bạn cần câu trả lời gấp, vui lòng xem danh sách các trang web của tôi để được trợ giúp về lập trình
MÃ VÍ DỤ TẢI XUỐNG
Nhấp vào đây để tải xuống mã nguồn, tôi đã phát hành nó theo giấy phép MIT, vì vậy hãy thoải mái xây dựng trên mã nguồn hoặc sử dụng nó trong dự án của riêng bạn
HỦY BỎ THỰC HIỆN JAVASCRIPT
Được rồi, bây giờ chúng ta hãy đi qua tất cả các phương pháp có thể để dừng hoặc hủy bỏ thực thi Javascript
PHƯƠNG PHÁP 1] TRẢ LẠI SAI
1 lần quay lại. js
function test [] {
// [A] DO YOUR STUFF AS USUAL
console.log["Test started"];
let i = 0;
i++;
// [B] ABORT - RETURN "UNDEFINED"
if [i != 0] { return; }
// [C] RETURN RESULT IF OK
console.log["This part will not run"];
return i;
}
// [D] FIRE TEST[]
let i = test[];
console.log[i];
// [E] BEST TO HANDLE THE ABORTION GRACEFULLY
if [i==undefined] {
// HANDLE ABORT
}
Đây là một trong những cách duyên dáng nhất và “không phải tin tặc” mà tôi khuyên bạn nên sử dụng – Chỉ cần
function test [] {
// [A] DO YOUR STUFF AS USUAL
console.log["Test started"];
let i = 0;
i++;
// [B] ABORT - THROW ERROR
if [i != 0] {
throw new Error["Manual Abort Script"];
}
// [C] RETURN RESULT IF OK
console.log["This part will not run"];
return i;
}
// [D] BEST TO TRY-CATCH FOR A GRACEFUL SCRIPT
try {
let x = test[];
} catch [err] {
console.log[err];
}
7 hoặc function test [] {
// [A] DO YOUR STUFF AS USUAL
console.log["Test started"];
let i = 0;
i++;
// [B] ABORT - THROW ERROR
if [i != 0] {
throw new Error["Manual Abort Script"];
}
// [C] RETURN RESULT IF OK
console.log["This part will not run"];
return i;
}
// [D] BEST TO TRY-CATCH FOR A GRACEFUL SCRIPT
try {
let x = test[];
} catch [err] {
console.log[err];
}
8 trong hàm. Nó phải rất đơn giản và dễ hiểu, ngay cả đối với người mới bắt đầuP. S. Bạn cũng có thể muốn xử lý những gì xảy ra sau khi phá thai. Có thể hiển thị một thông báo "lỗi" hoặc một cái gì đó
PHƯƠNG PHÁP 2] NÉM NGOẠI LỆ
2 lỗi. js
function test [] {
// [A] DO YOUR STUFF AS USUAL
console.log["Test started"];
let i = 0;
i++;
// [B] ABORT - THROW ERROR
if [i != 0] {
throw new Error["Manual Abort Script"];
}
// [C] RETURN RESULT IF OK
console.log["This part will not run"];
return i;
}
// [D] BEST TO TRY-CATCH FOR A GRACEFUL SCRIPT
try {
let x = test[];
} catch [err] {
console.log[err];
}
Tiếp tục, đây là một phương pháp “phổ biến” mà tôi tìm thấy trên Internet. Đúng, thật thú vị khi đưa ra một "lỗi" khi nó không thực sự là một lỗi.. Nhưng đây là một cách đảm bảo để hủy bỏ và ngăn chặn các tập lệnh tiếp tục. Để không “sập” hoàn toàn tập lệnh, nên sử dụng khối
function test [] {
// [A] DO YOUR STUFF AS USUAL
console.log["Test started"];
let i = 0;
i++;
// [B] ABORT - THROW ERROR
if [i != 0] {
throw new Error["Manual Abort Script"];
}
// [C] RETURN RESULT IF OK
console.log["This part will not run"];
return i;
}
// [D] BEST TO TRY-CATCH FOR A GRACEFUL SCRIPT
try {
let x = test[];
} catch [err] {
console.log[err];
}
9 để xử lý mọi thứ một cách duyên dáng – Có thể hiển thị cho người dùng thông báo “tập lệnh bị hủy bỏ”P. S. Thay vào đó, tôi vẫn khuyên bạn nên sử dụng
function test [] {
// [A] DO YOUR STUFF AS USUAL
console.log["Test started"];
let i = 0;
i++;
// [B] ABORT - THROW ERROR
if [i != 0] {
throw new Error["Manual Abort Script"];
}
// [C] RETURN RESULT IF OK
console.log["This part will not run"];
return i;
}
// [D] BEST TO TRY-CATCH FOR A GRACEFUL SCRIPT
try {
let x = test[];
} catch [err] {
console.log[err];
}
10 hoặc function test [] {
// [A] DO YOUR STUFF AS USUAL
console.log["Test started"];
let i = 0;
i++;
// [B] ABORT - THROW ERROR
if [i != 0] {
throw new Error["Manual Abort Script"];
}
// [C] RETURN RESULT IF OK
console.log["This part will not run"];
return i;
}
// [D] BEST TO TRY-CATCH FOR A GRACEFUL SCRIPT
try {
let x = test[];
} catch [err] {
console.log[err];
}
11 ở trên – Nó “mềm hơn” và “đúng về mặt logic”
PHƯƠNG PHÁP 3] DỪNG HẸN GIỜ
hẹn giờ 3. js
function test [] {
// [A] DO YOUR STUFF AS USUAL
console.log["Test started"];
let i = 0;
i++;
// [B] ABORT - THROW ERROR
if [i != 0] {
throw new Error["Manual Abort Script"];
}
// [C] RETURN RESULT IF OK
console.log["This part will not run"];
return i;
}
// [D] BEST TO TRY-CATCH FOR A GRACEFUL SCRIPT
try {
let x = test[];
} catch [err] {
console.log[err];
}
1Đây là một cái khác mà tôi tìm thấy trên Internet. Toàn bộ ý tưởng của phương pháp này là đặt tập lệnh vào bộ đếm thời gian và chỉ cần gọi
function test [] {
// [A] DO YOUR STUFF AS USUAL
console.log["Test started"];
let i = 0;
i++;
// [B] ABORT - THROW ERROR
if [i != 0] {
throw new Error["Manual Abort Script"];
}
// [C] RETURN RESULT IF OK
console.log["This part will not run"];
return i;
}
// [D] BEST TO TRY-CATCH FOR A GRACEFUL SCRIPT
try {
let x = test[];
} catch [err] {
console.log[err];
}
12 để hủy bỏ nó. Trong khi nó hoạt động, nó cũng khá vô dụng trừ khi bạn có một tập lệnh chạy theo vòng lặp hoặc bộ đếm thời gian…
PHƯƠNG PHÁP 4] CHẤM VIỆC CHO NGƯỜI LAO ĐỘNG
4A] CÔNG NHÂN LÀ GÌ?
Dành cho các bạn mới bắt đầu code ninja chưa nghe nói về worker – Về cơ bản, đây là cách Javascript để thực hiện đa luồng, cho phép các tập lệnh chạy trong nền, cho phép nhiều tập lệnh chạy song song. Nếu bạn muốn tìm hiểu thêm, tôi sẽ để lại một liên kết đến hướng dẫn nhân viên khác của tôi trong phần bổ sung bên dưới
4B] KỊCH BẢN CHÍNH
4a-chính. js
function test [] {
// [A] DO YOUR STUFF AS USUAL
console.log["Test started"];
let i = 0;
i++;
// [B] ABORT - THROW ERROR
if [i != 0] {
throw new Error["Manual Abort Script"];
}
// [C] RETURN RESULT IF OK
console.log["This part will not run"];
return i;
}
// [D] BEST TO TRY-CATCH FOR A GRACEFUL SCRIPT
try {
let x = test[];
} catch [err] {
console.log[err];
}
5
PHIẾU CÔNG NHÂN
4b-công nhân. js
function test [] {
// [A] DO YOUR STUFF AS USUAL
console.log["Test started"];
let i = 0;
i++;
// [B] ABORT - THROW ERROR
if [i != 0] {
throw new Error["Manual Abort Script"];
}
// [C] RETURN RESULT IF OK
console.log["This part will not run"];
return i;
}
// [D] BEST TO TRY-CATCH FOR A GRACEFUL SCRIPT
try {
let x = test[];
} catch [err] {
console.log[err];
}
6
GIẢI THÍCH
Công nhân thoạt nhìn hơi khó hiểu, nhưng nó thực sự chỉ hoạt động giống như một lệnh gọi AJAX – Có 2 phần, tập lệnh chính
function test [] {
// [A] DO YOUR STUFF AS USUAL
console.log["Test started"];
let i = 0;
i++;
// [B] ABORT - THROW ERROR
if [i != 0] {
throw new Error["Manual Abort Script"];
}
// [C] RETURN RESULT IF OK
console.log["This part will not run"];
return i;
}
// [D] BEST TO TRY-CATCH FOR A GRACEFUL SCRIPT
try {
let x = test[];
} catch [err] {
console.log[err];
}
13 và tập lệnh công nhân function test [] {
// [A] DO YOUR STUFF AS USUAL
console.log["Test started"];
let i = 0;
i++;
// [B] ABORT - THROW ERROR
if [i != 0] {
throw new Error["Manual Abort Script"];
}
// [C] RETURN RESULT IF OK
console.log["This part will not run"];
return i;
}
// [D] BEST TO TRY-CATCH FOR A GRACEFUL SCRIPT
try {
let x = test[];
} catch [err] {
console.log[err];
}
14- Đầu tiên, chúng tôi bắt đầu bằng cách tạo một công nhân mới
15 trong tập lệnh chínhfunction test [] { // [A] DO YOUR STUFF AS USUAL console.log["Test started"]; let i = 0; i++; // [B] ABORT - THROW ERROR if [i != 0] { throw new Error["Manual Abort Script"]; } // [C] RETURN RESULT IF OK console.log["This part will not run"]; return i; } // [D] BEST TO TRY-CATCH FOR A GRACEFUL SCRIPT try { let x = test[]; } catch [err] { console.log[err]; }
- Lưu ý thêm rằng worker script không có quyền truy cập vào cây DOM. Tôi. E.
16 sẽ không hoạt động trongfunction test [] { // [A] DO YOUR STUFF AS USUAL console.log["Test started"]; let i = 0; i++; // [B] ABORT - THROW ERROR if [i != 0] { throw new Error["Manual Abort Script"]; } // [C] RETURN RESULT IF OK console.log["This part will not run"]; return i; } // [D] BEST TO TRY-CATCH FOR A GRACEFUL SCRIPT try { let x = test[]; } catch [err] { console.log[err]; }
14function test [] { // [A] DO YOUR STUFF AS USUAL console.log["Test started"]; let i = 0; i++; // [B] ABORT - THROW ERROR if [i != 0] { throw new Error["Manual Abort Script"]; } // [C] RETURN RESULT IF OK console.log["This part will not run"]; return i; } // [D] BEST TO TRY-CATCH FOR A GRACEFUL SCRIPT try { let x = test[]; } catch [err] { console.log[err]; }
- Đây là lý do tại sao chúng ta phải gửi dữ liệu cho worker trong tập lệnh chính –
18function test [] { // [A] DO YOUR STUFF AS USUAL console.log["Test started"]; let i = 0; i++; // [B] ABORT - THROW ERROR if [i != 0] { throw new Error["Manual Abort Script"]; } // [C] RETURN RESULT IF OK console.log["This part will not run"]; return i; } // [D] BEST TO TRY-CATCH FOR A GRACEFUL SCRIPT try { let x = test[]; } catch [err] { console.log[err]; }
- Tiếp theo trong tập lệnh worker, chúng tôi chỉ bắt đầu xử lý khi nhận được dữ liệu –
19function test [] { // [A] DO YOUR STUFF AS USUAL console.log["Test started"]; let i = 0; i++; // [B] ABORT - THROW ERROR if [i != 0] { throw new Error["Manual Abort Script"]; } // [C] RETURN RESULT IF OK console.log["This part will not run"]; return i; } // [D] BEST TO TRY-CATCH FOR A GRACEFUL SCRIPT try { let x = test[]; } catch [err] { console.log[err]; }
- Khi công nhân hoàn thành, nó sẽ trả về một thông báo trở lại tập lệnh chính –
50function test [] { // [A] DO YOUR STUFF AS USUAL console.log["Test started"]; let i = 0; i++; // [B] ABORT - THROW ERROR if [i != 0] { throw new Error["Manual Abort Script"]; } // [C] RETURN RESULT IF OK console.log["This part will not run"]; return i; } // [D] BEST TO TRY-CATCH FOR A GRACEFUL SCRIPT try { let x = test[]; } catch [err] { console.log[err]; }
- Cuối cùng, quay lại kịch bản chính, chúng ta xử lý khi worker hoàn thành –
51function test [] { // [A] DO YOUR STUFF AS USUAL console.log["Test started"]; let i = 0; i++; // [B] ABORT - THROW ERROR if [i != 0] { throw new Error["Manual Abort Script"]; } // [C] RETURN RESULT IF OK console.log["This part will not run"]; return i; } // [D] BEST TO TRY-CATCH FOR A GRACEFUL SCRIPT try { let x = test[]; } catch [err] { console.log[err]; }
Về phần tốt nhất, chúng ta có thể hủy bỏ worker bất cứ lúc nào bằng cách sử dụng
function test [] {
// [A] DO YOUR STUFF AS USUAL
console.log["Test started"];
let i = 0;
i++;
// [B] ABORT - THROW ERROR
if [i != 0] {
throw new Error["Manual Abort Script"];
}
// [C] RETURN RESULT IF OK
console.log["This part will not run"];
return i;
}
// [D] BEST TO TRY-CATCH FOR A GRACEFUL SCRIPT
try {
let x = test[];
} catch [err] {
console.log[err];
}
52
PHƯƠNG PHÁP 5] DỪNG CỬA SỔ
0-chính. html
function test [] {
// [A] DO YOUR STUFF AS USUAL
console.log["Test started"];
let i = 0;
i++;
// [B] ABORT - THROW ERROR
if [i != 0] {
throw new Error["Manual Abort Script"];
}
// [C] RETURN RESULT IF OK
console.log["This part will not run"];
return i;
}
// [D] BEST TO TRY-CATCH FOR A GRACEFUL SCRIPT
try {
let x = test[];
} catch [err] {
console.log[err];
}
7dừng 5a. js
function test [] {
// [A] DO YOUR STUFF AS USUAL
console.log["Test started"];
let i = 0;
i++;
// [B] ABORT - THROW ERROR
if [i != 0] {
throw new Error["Manual Abort Script"];
}
// [C] RETURN RESULT IF OK
console.log["This part will not run"];
return i;
}
// [D] BEST TO TRY-CATCH FOR A GRACEFUL SCRIPT
try {
let x = test[];
} catch [err] {
console.log[err];
}
8dừng 5b. js
function test [] {
// [A] DO YOUR STUFF AS USUAL
console.log["Test started"];
let i = 0;
i++;
// [B] ABORT - THROW ERROR
if [i != 0] {
throw new Error["Manual Abort Script"];
}
// [C] RETURN RESULT IF OK
console.log["This part will not run"];
return i;
}
// [D] BEST TO TRY-CATCH FOR A GRACEFUL SCRIPT
try {
let x = test[];
} catch [err] {
console.log[err];
}
9Chỉ cần sử dụng
function test [] {
// [A] DO YOUR STUFF AS USUAL
console.log["Test started"];
let i = 0;
i++;
// [B] ABORT - THROW ERROR
if [i != 0] {
throw new Error["Manual Abort Script"];
}
// [C] RETURN RESULT IF OK
console.log["This part will not run"];
return i;
}
// [D] BEST TO TRY-CATCH FOR A GRACEFUL SCRIPT
try {
let x = test[];
} catch [err] {
console.log[err];
}
4 để ngăn phần còn lại của trang tải… Đúng, nó hoạt động tốt và sẽ ngăn tất cả các tập lệnh khác tải/chạy. Nhưng như bạn có thể đoán, điều này cũng sẽ ngăn trang HTML tải đầy đủ. 😐 Không thực sự hữu ích, trừ khi bạn muốn thực hiện một cú “phanh gấp”
PHƯƠNG PHÁP 6] NODE JS ABORT và EXIT
6-hủy bỏ. js
function test [] {
// [A] DO YOUR STUFF AS USUAL
console.log["Test started"];
let i = 0;
i++;
// [B] ABORT - THROW ERROR
if [i != 0] {
throw new Error["Manual Abort Script"];
}
// [C] RETURN RESULT IF OK
console.log["This part will not run"];
return i;
}
// [D] BEST TO TRY-CATCH FOR A GRACEFUL SCRIPT
try {
let x = test[];
} catch [err] {
console.log[err];
}
1Cái này chỉ dành cho NodeJS, sử dụng các hàm
function test [] {
// [A] DO YOUR STUFF AS USUAL
console.log["Test started"];
let i = 0;
i++;
// [B] ABORT - THROW ERROR
if [i != 0] {
throw new Error["Manual Abort Script"];
}
// [C] RETURN RESULT IF OK
console.log["This part will not run"];
return i;
}
// [D] BEST TO TRY-CATCH FOR A GRACEFUL SCRIPT
try {
let x = test[];
} catch [err] {
console.log[err];
}
5 và function test [] {
// [A] DO YOUR STUFF AS USUAL
console.log["Test started"];
let i = 0;
i++;
// [B] ABORT - THROW ERROR
if [i != 0] {
throw new Error["Manual Abort Script"];
}
// [C] RETURN RESULT IF OK
console.log["This part will not run"];
return i;
}
// [D] BEST TO TRY-CATCH FOR A GRACEFUL SCRIPT
try {
let x = test[];
} catch [err] {
console.log[err];
}
6 để dừng thực thi. Sự khác biệt giữa chúng là function test [] {
// [A] DO YOUR STUFF AS USUAL
console.log["Test started"];
let i = 0;
i++;
// [B] ABORT - THROW ERROR
if [i != 0] {
throw new Error["Manual Abort Script"];
}
// [C] RETURN RESULT IF OK
console.log["This part will not run"];
return i;
}
// [D] BEST TO TRY-CATCH FOR A GRACEFUL SCRIPT
try {
let x = test[];
} catch [err] {
console.log[err];
}
56 sẽ dừng ngay lập tức và function test [] {
// [A] DO YOUR STUFF AS USUAL
console.log["Test started"];
let i = 0;
i++;
// [B] ABORT - THROW ERROR
if [i != 0] {
throw new Error["Manual Abort Script"];
}
// [C] RETURN RESULT IF OK
console.log["This part will not run"];
return i;
}
// [D] BEST TO TRY-CATCH FOR A GRACEFUL SCRIPT
try {
let x = test[];
} catch [err] {
console.log[err];
}
57 sẽ dừng ngay khi có thể… Tức là, việc dọn dẹp của function test [] {
// [A] DO YOUR STUFF AS USUAL
console.log["Test started"];
let i = 0;
i++;
// [B] ABORT - THROW ERROR
if [i != 0] {
throw new Error["Manual Abort Script"];
}
// [C] RETURN RESULT IF OK
console.log["This part will not run"];
return i;
}
// [D] BEST TO TRY-CATCH FOR A GRACEFUL SCRIPT
try {
let x = test[];
} catch [err] {
console.log[err];
}
57 sẽ duyên dáng hơn chứ không phải đột ngột “đột ngột dừng mọi thứ”
BIT BỔ SUNG & LIÊN KẾT
Đó là tất cả cho hướng dẫn này và đây là một phần nhỏ về một số tính năng bổ sung và liên kết có thể hữu ích cho bạn
LIÊN KẾT và THAM KHẢO
- Làm cách nào để chấm dứt tập lệnh trong JavaScript?
- Làm cách nào để dừng thực thi một hàm bằng JavaScript?
- Đa luồng Javascript – Công nhân cho người mới bắt đầu – Code Boxx
- Chấm dứt công nhân – MDN
- Lỗi – MDN
- . – NútJS
- Cửa sổ. dừng [] – MDN
VIDEO HƯỚNG DẪN
BẢNG CHEAT INFOGRAPHIC
Cảm ơn bạn đã đọc, và chúng tôi đã đi đến phần cuối của hướng dẫn này. Tôi hy vọng rằng nó đã giúp bạn với dự án của bạn và nếu bạn muốn chia sẻ bất cứ điều gì với hướng dẫn này, xin vui lòng bình luận bên dưới. Chúc may mắn và mã hóa hạnh phúc