Câu hỏi phỏng vấn Javascript
Câu hỏi

Lập trình bất đồng bộ trong Javascript là gì?

Câu trả lời

Lập trình bất đồng bộ trong JavaScript là một mô hình lập trình cho phép việc xử lý các tác vụ mà không cần chờ đợi kết quả của tác vụ trước đó hoàn thành. Điều này giúp cải thiện hiệu suất và thời gian phản hồi của ứng dụng, đặc biệt là khi thực hiện các tác vụ nặng như truy cập mạng hoặc I/O

JavaScript là một ngôn ngữ đơn luồng (single-threaded), nghĩa là nó chỉ có thể xử lý một câu lệnh tại một thời điểm[8]. Để khắc phục vấn đề blocking khi thực hiện các tác vụ nặng, JavaScript sử dụng các WebAPIs do trình duyệt cung cấp để thực thi các tác vụ này một cách bất đồng bộ

Các phương thức xử lý bất đồng bộ phổ biến trong JavaScript bao gồm:

  1. Callback: Là hàm được truyền vào như một tham số cho hàm khác và được gọi lại (callback) sau khi một tác vụ bất đồng bộ hoàn thành
  2. Promise: Đại diện cho một giá trị có thể không được biết ngay lập tức nhưng sẽ được biết sau khi tác vụ bất đồng bộ hoàn thành. Promise có thể ở một trong ba trạng thái: pending, fulfilled, hoặc rejected
  3. Async/Await: Là một cú pháp mới hơn giúp viết mã bất đồng bộ một cách rõ ràng và dễ đọc hơn. async được khai báo trước một hàm để biểu thị rằng hàm đó sẽ trả về một Promise, và await được sử dụng để chờ đợi một Promise hoàn thành

Bất đồng bộ giúp giải quyết vấn đề blocking của đồng bộ, được gọi là non-blocking, nghĩa là khi chạy một tác vụ nặng, những lệnh tiếp theo được phép chạy ngay mà không cần chờ tác vụ kia hoàn thành. Tuy nhiên, lập trình bất đồng bộ cũng đặt ra thách thức trong việc xử lý lỗi và quản lý tài nguyên dùng chung

Trong thực tế, việc sử dụng lập trình bất đồng bộ trong JavaScript là rất phổ biến, đặc biệt là trong các ứng dụng web hiện đại, nơi mà việc tối ưu hiệu suất và trải nghiệm người dùng là rất quan trọng

middle

middle

Gợi ý câu hỏi phỏng vấn

senior

Prototype trong Javascript là gì?

middle

Kết quả đoạn code sau là gì? Hãy giải thích tại sao?

middle

3 giai đoạn của event propagation trong Javascript là gì?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào