Nhận tất cả các biến toàn cục JavaScript

Tuy nhiên, chúng tôi nhận thấy rằng đôi khi các nhà phát triển không đọc tài liệu về cách thiết lập một đoạn mã có thể tái sử dụng và sẽ bỏ qua biến JavaScript toàn cầu. Vì vậy, khi mã tái sử dụng đó được thực thi, một thông báo lỗi sẽ xảy ra do biến chưa được xác định

Để giải quyết vấn đề này, chúng ta có thói quen kiểm tra xem một biến đã được xác định chưa. Điều này thực sự khá dễ thực hiện trong JavaScript, nhưng nó không phải là thứ mà bạn thường nghĩ đến. Điều đầu tiên chúng tôi thử là.
if [Biến toàn cục] {

Nhưng điều này sẽ không làm việc. Mã đó thực sự đang kiểm tra xem biến được xác định globalVariable có giá trị null hay không. Nếu biến chưa được xác định, mã đó sẽ gây ra lỗi

Trong JavaScript, luôn có một đối tượng toàn cục được định nghĩa. Trong trình duyệt web, khi tập lệnh tạo biến toàn cục được xác định bằng từ khóa var, chúng được tạo với tư cách là thành viên của đối tượng toàn cầu. [Trong nút. js đây không phải là trường hợp. ] Giao diện của đối tượng toàn cầu phụ thuộc vào ngữ cảnh thực thi trong đó tập lệnh đang chạy. Ví dụ

  • Trong trình duyệt web, bất kỳ mã nào mà tập lệnh không khởi động cụ thể dưới dạng tác vụ nền đều có đối tượng chung là Window. Đây là phần lớn mã JavaScript trên Web
  • Mã chạy trong một Worker có một đối tượng WorkerGlobalScope là đối tượng chung của nó
  • Các tập lệnh chạy dưới Nút. js có một đối tượng được gọi là global làm đối tượng chung của chúng

Thuộc tính toàn cầu globalThis cho phép một người truy cập đối tượng toàn cầu bất kể môi trường hiện tại

Câu lệnh var và khai báo hàm ở cấp cao nhất tạo các thuộc tính của đối tượng toàn cầu. Mặt khác, các khai báo letconst không bao giờ tạo các thuộc tính của đối tượng toàn cục

Chúng ta không thể truy cập một biến nếu nó nằm ngoài phạm vi của hàm, vì vậy các biến chúng ta muốn sử dụng phải có phạm vi phù hợp khi khai báo. Để tránh các vấn đề liên quan đến phạm vi, điều quan trọng là phải hiểu các biến toàn cục. Do đó, trong bài viết này, chúng ta sẽ thảo luận về các biến toàn cục và phạm vi

Phạm vi của một chức năng có thể được coi là một ranh giới trong đó chức năng có thể được truy cập. Tuy nhiên, trong khi một hàm không biết điều gì đang xảy ra ngoài dấu ngoặc nhọn xác định nó, thì một biến toàn cục có thể được truy cập từ bất kỳ đâu trong chương trình

cú pháp

Cú pháp được sử dụng để tạo một biến toàn cục, được hiển thị bên dưới, không khác với cú pháp được sử dụng để tạo các biến khác

var Tên biến = giá trị

Tuy nhiên, vị trí của tuyên bố này là rất quan trọng. Chúng ta sẽ khám phá khái niệm này đầy đủ hơn bằng cách xem xét một số ví dụ

Thí dụ

Đầu tiên, hãy tạo một hàm gọi là phép trừ

hàm phép trừ [ a ,b] {
 var subNum = 23;
}

Trong hàm này, chúng ta đã khởi tạo một biến và gán cho nó một giá trị. Bây giờ, chúng ta có thể thử truy cập biến trong hàm khác, tôi. e. , phép chia và gọi hàm đó

chức năng division[ a ,b] {
 console.log[ subNum ];
}

division[];

Tuy nhiên, chúng tôi nhận được lỗi tham chiếu sau vì subName biến không được xác định trong phạm vi chính xác


Lỗi này sẽ xảy ra bất cứ khi nào chúng tôi cố gắng truy cập subNum bên ngoài chức năng mà nó được xác định. Ví dụ

hàm phép trừ [ a ,b] {
 var subNum = 23;
};

console.log[ subNum ];


Ở đây, chúng ta vẫn không thể truy cập biến vì nó bị giới hạn trong hàm trừ

Tuy nhiên, hãy xem điều gì sẽ xảy ra nếu chúng ta tạo biến bên ngoài hàm—ví dụ: ở phần đầu của tập lệnh

var globalVar = 11;

Bây giờ, hãy thử truy cập nó

bảng điều khiển. log[ globalVar ];

Như hình bên dưới, chúng ta không còn gặp lỗi tham chiếu nữa


Hơn nữa, có thể truy cập globalVar từ bất kỳ chức năng nào

chức năng division[ a ,b] {
 console.log[ globalVar ];
}

division[];

Như bạn có thể thấy bên dưới, globalVar vẫn có thể truy cập được

Sự kết luận

Trong bài viết này, chúng tôi đã giải thích phạm vi và các biến toàn cục bằng cách sử dụng các ví dụ đơn giản. Chúng tôi hy vọng bạn tiếp tục học JavaScript với linuxhint. com

Chủ Đề