Java Script Event Looping được giải thích bằng các thuật ngữ đơn giản.

Nov 07 2022
Javascript là một ngôn ngữ lập trình đồng bộ đơn luồng. Nó là một trong những công nghệ cốt lõi của World Wide Web, cùng với HTML và CSS.

Javascript là một ngôn ngữ lập trình đồng bộ đơn luồng. Nó là một trong những công nghệ cốt lõi của World Wide Web, cùng với HTML và CSS. Tính đến năm 2022, 98% trang web sử dụng JavaScript ở phía máy khách cho hành vi của trang web, thường kết hợp các thư viện của bên thứ ba.

Giả sử rằng chúng ta đã quen thuộc với một số ngữ nghĩa cơ bản trên Javascript, hãy chuyển sang chủ đề thảo luận chính của chúng ta, tức là Vòng lặp sự kiện .

JavaScript có một mô hình thời gian chạy dựa trên một vòng lặp sự kiện , mô hình này chịu trách nhiệm thực thi mã, thu thập và xử lý các sự kiện cũng như thực thi các tác vụ con được xếp hàng đợi. Mô hình này khác với các mô hình bằng các ngôn ngữ khác như C và Java.

Để hiểu cách hoạt động của vòng lặp sự kiện, chúng ta cần tìm hiểu kỹ các chủ đề bên dưới.

  1. Bộ nhớ ngăn xếp
  2. Đống bộ nhớ
  3. Xếp hàng
  4. Stack, Heap và Queue

Hãy xem xét mã ví dụ dưới đây.

function add20(b) {
  const a = 20;
  return a + b;
}

function multiplyBy3(x) {
  const y = 3;
  return add20(x * y);
}

const ma = multiplyBy3(5); // assigns 35 to ma

      
                

  1. Khi gọi multiplyBy3, một khung đầu tiên được tạo có chứa các tham chiếu đến multiplyBy3'scác đối số và các biến cục bộ.
  2. Khi multiplyBy3các lệnh gọi add20, khung thứ hai được tạo và đẩy lên trên khung đầu tiên, chứa các tham chiếu đến add20'scác đối số và biến cục bộ.
  3. Khi add20trả về, phần tử khung trên cùng được bật ra khỏi ngăn xếp (chỉ để lại multiplyBy3khung cuộc gọi).
  4. Khi multiplyBy3trả về, ngăn xếp trống.

Bộ nhớ Heap chỉ là cấp phát bộ nhớ ngẫu nhiên cho các đối tượng. Trong mẫu mã ở trên, các tham số hàm được lưu trữ trên bộ nhớ heap và bị loại bỏ cho đến khi loại bỏ tham chiếu / khung hàm cuối cùng khỏi ngăn xếp.

Hàng đợi là nơi mà vòng lặp sự kiện JS tìm kiếm các thông báo và đặt chúng vào ngăn xếp thực thi hàm bất cứ khi nào ngăn xếp hàm trở nên trống. Quá trình này được tiếp tục cho đến khi hàng đợi tin nhắn trở nên trống.

Đối với mỗi thư trong hàng đợi, một ngăn xếp được tải với các khung hàm và được làm trống cho các thư trong hàng đợi (nếu có) .

Vòng lặp sự kiện

Vòng lặp sự kiện có tên vì cách nó thường được triển khai, thường giống như sau:

while (queue.waitForMessage()) {
  queue.processNextMessage();
}

Cảm ơn bạn rất nhiều vì đã đọc điều này và hãy tiếp tục ủng hộ và chia sẻ tình yêu của bạn.

© Copyright 2021 - 2022 | vngogo.com | All Rights Reserved