Biến toàn cục và biến cục bộ là gì năm 2024

Bài viết này sẽ giúp bạn hiểu rõ hơn về các biến toàn cục và biến cục bộ trong JavaScript. Nếu bạn mới bắt đầu học lập trình, các khái niệm này có thể làm cho bạn bối rối. Tuy nhiên, sau khi đọc xong bài viết này, bạn sẽ biết được chúng là gì, tại sao chúng quan trọng và cách sử dụng chúng.

Một biến toàn cục là một biến mà có thể truy cập được từ bất kỳ đâu trong chương trình JavaScript của bạn. Nó được khai báo bên ngoài tất cả các hàm và phương thức, nghĩa là bạn có thể truy cập nó từ bất kỳ hàm nào. Tuy nhiên, việc sử dụng các biến toàn cục cần phải được cân nhắc cẩn thận, vì nó có thể gây ra các lỗi khó phát hiện và khó sửa chữa. Dưới đây là ví dụ về cách khai báo và sử dụng biến toàn cục trong JavaScript:

    `
      // Khai báo biến toàn cục  
var globalVariable = "Tôi là biến toàn cục"; function printGlobalVariable() { console.log(globalVariable); // Truy cập biến toàn cục } printGlobalVariable(); // Output: Tôi là biến toàn cục
    `
  
## Biến cục bộ trong JavaScript

Một biến cục bộ là một biến mà chỉ có thể truy cập được trong một phạm vi nhất định, chẳng hạn như trong một hàm hoặc phương thức. Nó được khai báo bên trong một hàm hoặc phương thức, nghĩa là bạn chỉ có thể truy cập nó từ bên trong hàm hoặc phương thức đó. Điều này giúp tránh xung đột giữa các biến và giảm thiểu lỗi. Dưới đây là ví dụ về cách khai báo và sử dụng biến cục bộ trong JavaScript:

    `
      function printLocalVariable() {  
// Khai báo biến cục bộ var localVariable = "Tôi là biến cục bộ"; console.log(localVariable); // Truy cập biến cục bộ } printLocalVariable(); // Output: Tôi là biến cục bộ console.log(localVariable); // Error: localVariable is not defined
    `
  
Ví dụ trên cho thấy rõ ràng rằng biến cục bộ chỉ có thể truy cập được trong phạm vi của hàm printLocalVariable(). Khi bạn cố gắng truy cập nó bên ngoài phạm vi đó

Vì vậy, trong JavaScript, bạn có thể sử dụng các biến toàn cục và biến cục bộ để lưu trữ và truy cập dữ liệu. Tuy nhiên, bạn nên sử dụng chúng một cách cẩn thận để tránh gây ra lỗi trong chương trình của mình.

Nếu bạn muốn tìm hiểu thêm về JavaScript, hãy tham khảo các tài liệu và khóa học trực tuyến có sẵn trên mạng. Đừng ngần ngại để thực hành và xây dựng các ứng dụng của riêng bạn để cải thiện kỹ năng lập trình của mình.

Ở bài trước, chúng ta đã cùng tìm hiểu về kiểu dữ liệu, cách khai báo và sử dụng hằng, biến. Trong bài viết này, ta sẽ tìm hiểu kĩ hơn về biến. Trong ngôn ngữ C/C++, biến có 2 loại: biến toàn cục và biến cục bộ. Vậy chúng khác nhau ở điểm nào, phạm vi hoạt động của chúng ra sao ? Cùng xem nhé !

1. Biến cục bộ (local variables)

Biến cục bộ là biến:

– Được khai báo bên trong một khối lệnh nào đó.

– Chỉ được truy cập trong khối lệnh mà nó được khai báo và những “khối lệnh con” của khối lệnh đó.

– Bị huỷ khi khối lệnh kết thúc.

– Khi khai báo mà không khởi gán, biến cục bộ mang giá trị rác (Giá trị rác là giá trị bất kì nào đó không biết trước được).

2. Biến toàn cục (global variables)

Biến toàn cục là biến:

– Được khai báo bên ngoài tất cả các hàm, khai báo chung với các dòng khai báo thư viện.

– Có thể truy cập ở bất cứ đâu trong chương trình.

– Chỉ bị huỷ khi chương trình kết thúc.

– Khi khai báo mà không khởi gán, biến toàn cục mang giá trị 0.

Xét đoạn chương trình sau:

int n; //biến toàn cục int main() {

int x, y; //biến cục bộ trong hàm main
x = 5;
y = 6;
{
    int x = 4;
    printf("x (in sub block) = %d\n", x);
    y += 1;
}
printf("n = %d\n", n);
printf("x (int main block) = %d\n", x);
printf("y = %d\n", y);
}

Kết quả xuất ra màn hình:

n = 0 x (in sub block) = 4 x (in main block) = 5 y = 7

Giải thích thêm:

– Biến n là một ví dụ cho biến toàn cục, khi chỉ khai báo mà không khởi gán, giá trị của biến toàn cục là 0, và nó có thể được sử dụng bất cứ đâu trong chương trình.

– Biến x, y là 2 ví dụ về biến cục bộ, trong đó:

+ Biến y có thể được gọi trong khối lệnh mà nó được khai báo và trong các khối lệnh con.

+ Nhưng với x, ta thấy bên trong khối lệnh con, ta lại khai báo một biến x khác. Mình xin nhấn mạnh là một biến x khác. Trong trường hợp khai báo này, mọi thao tác đối với x chỉ ảnh hướng đến x bên trong khối lệnh con, hoàn toàn không ảnh hưởng đến x ở hàm main ví chúng là hai biến độc lập nhau.

Một số lưu ý (theo kinh nghiệm bản thân thôi nha):

– Không nên dùng biến toàn cục nếu không thật sự cần thiết, vì nó có thể được gọi ở bất cứ đâu. Giả sử bạn viết một chương trình lớn, khoảng 1000 dòng code chẳng hạn, mà dùng đến biến toàn cục, thì thật sự rất khó để kiểm soát được biến toàn cục trong 1000 dòng code đó, không biết nó đã được gọi ở chỗ nào.