Phạm vi JavaScript: Block, Global, và Function

Scope quyết định nơi bạn có thể sử dụng một biến trong mã nguồn của mình.

  1. Global Scope (Phạm vi toàn cục) Các biến tồn tại bên ngoài các hàm hoặc khối lệnh. Bạn có thể truy cập chúng từ bất kỳ đâu trong script của mình. Cảnh báo: Các biến toàn cục dễ dẫn đến lỗi vì bất kỳ phần nào trong mã nguồn cũng có thể thay đổi chúng.

  2. Function Scope (Phạm vi hàm) Các biến tồn tại bên trong một hàm. Bạn chỉ có thể truy cập chúng trong phạm vi hàm cụ thể đó.

  3. Block Scope (Phạm vi khối) Điều này áp dụng cho JavaScript hiện đại khi sử dụng let hoặc const. Các biến tồn tại bên trong các dấu ngoặc nhọn {}. Một khối bao gồm:

Tóm tắt về Scope:

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

Một tiến trình (process) là một chương trình đang chạy với bộ nhớ riêng. Hãy coi WhatsApp là một tiến trình.

Một luồng (thread) là một phần nhỏ của một tiến trình. Các luồng chia sẻ cùng một bộ nhớ.

Ví dụ về WhatsApp: Một tiến trình (WhatsApp) chạy nhiều luồng:

Source: https://freeacademy.ai/lessons/global-vs-function-vs-block-scope Source: https://josephcardillo.medium.com/the-difference-between-function-and-block-scope-in-javascript-4296b2322abe