𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁 𝗕𝗮𝘀𝗶𝗰𝘀: 𝗖𝗮𝗹𝗹𝗯𝗮𝗰𝗸𝘀, 𝗢𝗯𝗷𝗲𝗰𝘁𝘀, 𝗮𝗻𝗱 𝗘𝘅𝗲𝗰𝘂𝘁𝗶𝗼𝗻

JavaScript chạy theo hai cách: đồng bộ (synchronous) và bất đồng bộ (asynchronous).

Mã đồng bộ chạy theo từng dòng. Engine sẽ hoàn thành một tác vụ trước khi bắt đầu tác vụ tiếp theo. Điều này sẽ chặn tác vụ kế tiếp không cho chạy.

Mã bất đồng bộ cho phép các tác vụ chạy độc lập. Bạn có thể bắt đầu một tác vụ và chuyển sang tác vụ tiếp theo trong khi chờ đợi. Điều này giúp cải thiện hiệu suất trong các ứng dụng web.

Các khái niệm bất đồng bộ chính: • Callbacks: Các hàm được truyền vào các hàm khác để chạy sau đó. • Promises: Các đối tượng đại diện cho kết quả của một thao tác. • Async/Await: Cú pháp hiện đại giúp mã bất đồng bộ dễ đọc hơn. • Event Loop: Hệ thống quản lý việc thực thi các tác vụ.

Hiểu về Process (Tiến trình) và Thread (Luồng)

Một process là một chương trình đang trong quá trình thực thi. • Các process hoạt động độc lập. • Chúng không chia sẻ bộ nhớ. • Một process có thể tạo ra các process con. • Chúng mất nhiều thời gian hơn để kết thúc.

Một thread là một phần của một process. • Một process có thể có nhiều thread. • Các thread chia sẻ bộ nhớ với nhau. • Chúng mất ít thời gian hơn để kết thúc.

Callback Function là gì?

Một callback là một hàm được truyền vào dưới dạng đối số. Hàm bên ngoài sẽ gọi nó để hoàn thành một tác vụ. Sử dụng callback cho: • Các tác vụ bất đồng bộ như lấy dữ liệu (fetching data). • Xử lý sự kiện như khi nhấn nút. • Tạo mã có thể tái sử dụng.

JavaScript Objects

Một đối tượng lưu trữ dữ liệu dưới dạng các cặp key-value. Các key dùng để xác định giá trị. Giá trị có thể là các kiểu dữ liệu nguyên thủy (primitives), các đối tượng khác, hoặc các hàm.

Bạn có thể tạo đối tượng theo hai cách:

  1. Object Literals: Sử dụng dấu ngoặc nhọn để định nghĩa các thuộc tính. Ví dụ: let user = {name: "Sourav", age: 23};

  2. Object Constructor: Sử dụng lệnh new Object(). Ví dụ: let user = new Object();

Các đối tượng có tính thay đổi (mutable). Bạn có thể thêm, thay đổi hoặc xóa các thuộc tính bất cứ lúc nào. Điều này giúp bạn nhóm các dữ liệu liên quan lại với nhau.

Nguồn: https://dev.to/karthick_07/understanding-callback-functions-objects-and-synchronous-programming-a-comprehensive-guide-27lb