Phạm vi của biến là phạm vi của tập lệnh nơi nó hiển thị. Các biến có phạm vi toàn cầu hoặc cục bộ. Biến toàn cục chỉ tồn tại một lần trong tập lệnh và hiển thị trong mọi chức năng. Các sửa đổi đối với nó trong một chức năng là vĩnh viễn và hiển thị đối với tất cả các chức năng. Trừ khi được khai báo khác, tất cả các biến trong tập lệnh là toàn cầu. Biến toàn cục hữu ích cho các giá trị tương đối không đổi hoặc nhiều chức năng trong tập lệnh phải truy cập, chẳng hạn như id phiên
Tuy nhiên, một biến cục bộ có phạm vi giới hạn. nó chỉ tồn tại trong khối mà nó được khai báo trong. Khi khối đó kết thúc, biến bị hủy và giá trị của nó bị mất. Một biến cục bộ cùng tên được khai báo ở nơi khác là một biến khác. Một biến cục bộ thậm chí có thể tồn tại nhiều lần cùng một lúc, nếu khối của nó được nhập lại trước khi thoát - i. e. một lời gọi hàm đệ quy. Mỗi lần gọi hàm sẽ có một biến cục bộ riêng biệt
Các biến cục bộ phải được khai báo rõ ràng, dưới dạng tham số cho hàm tập lệnh [tại đây] hoặc với câu lệnh LOCAL
[tại đây]. Chúng được sử dụng để truyền rõ ràng các tham số cho các hàm hoặc dưới dạng "không gian đầu" tạm thời cho một hàm mà không có tác dụng phụ của việc sửa đổi biến toàn cục
Một biến cục bộ có cùng tên với một biến trong phạm vi khác sẽ được ưu tiên hơn biến bên ngoài. Ví dụ: một biến cục bộ có tên là $x
được ưu tiên hơn và sẽ "ẩn", một biến toàn cục có tên là $x
... The value of x is $x
Trong khối LOCAL
, tham chiếu đến $x
tham chiếu đến biến cục bộ. toàn cầu $x
bị ẩn. Do đó, giá trị $x
toàn cầu "_______9_______" không bị mất khi khối LOCAL
kết thúc
Hàm bên trong có quyền truy cập vào cả ba biến vì cả ba biến đều tồn tại trong khi hàm bên trong đang chạy
Lý do mã bên ngoài không thể truy cập các biến bên trong các hàm bên trong là vì các hàm đó không chạy [chúng không tồn tại trên ngăn xếp hoặc bất cứ thứ gì nó được gọi] cho đến khi các hàm bên trong này được gọi trong mã. Và sau đó chúng chỉ tồn tại trong khoảng thời gian cần thiết trong khoảng thời gian cần thiết để thực hiện công việc của chúng
Nếu chúng ta giả sử rằng mã ví dụ nằm trong hàm 'main[]'. Trong khi 'main[]' đang chạy, đó là mã duy nhất đang chạy. Trong khi ‘outer[]’ đang chạy, chỉ có mã outside[] và main[] tồn tại. Trong khi 'inner[]' đang chạy, mã bên trong[], bên ngoài[] và mã chính[] nằm trong bộ nhớ hoặc đang chạy
Các chức năng kết thúc theo thứ tự ngược lại mà chúng đã bắt đầu. Chức năng cuối cùng bắt đầu là chức năng đầu tiên kết thúc. Nói cách khác, khi mỗi chức năng kết thúc, 'củ hành' được mở ra, máy tính có thể 'thấy' các giá trị ban đầu cho X
Ngay cả khi chúng ta giả định rằng máy tính biết rằng các biến trong cùng sẽ tồn tại vào một thời điểm nào đó trong tương lai, thì sẽ quá khó hiểu để phân loại biến nào có thể nhìn thấy và biến nào không.
dòng dưới cùng. Hãy coi các hàm bên trong là lười biếng – hành vi mặc định của chúng là sử dụng biến ngoài cùng [toàn cục] nếu tồn tại cùng tên. Các hàm chỉ bận tâm tạo một biến mới bên trong nếu được thúc giục làm như vậy bởi từ khóa “var”, và sau đó hàm bên trong này quá mệt mỏi và không thể tạo biến mới đó để tìm kiếm bất kỳ biến nào khác có cùng tên ở bên ngoài. Hàm bên trong sẽ chỉ sử dụng bất cứ thứ gì gần với nó nhất
Ví dụ
var X = 100;
function outer[] {
var X = 99;
function inner[] {
var X = 98;
}
}
Khi bắt đầu khối mã ở trên, X === 100 Trong khi chức năng bên ngoài [] đang chạy, một X === 99 khác // trừ khi chúng ta bỏ qua 'var' Trong khi chức năng bên trong [] đang chạy, một X = khác
Nếu chúng ta quên sử dụng từ khóa ‘var’ trong các hàm bên ngoài [] hoặc bên trong [], thì chúng ta đã vô tình [hoặc cố ý] ghi đè giá trị của X trong lớp của hàm hành tây ngay bên ngoài. Đó được gọi là 'tác dụng phụ'
Là thành viên, bạn cũng sẽ có quyền truy cập không giới hạn vào hơn 84.000 bài học về toán, tiếng Anh, khoa học, lịch sử, v.v. Ngoài ra, nhận các bài kiểm tra thực hành, câu đố và huấn luyện được cá nhân hóa để giúp bạn thành công
Nhận quyền truy cập không giới hạn vào hơn 84.000 bài học
Chỉ mất vài phút để thiết lập và bạn có thể hủy bất cứ lúc nào
Đã đăng ký?Tài nguyên do giáo viên tạo ra cho giáo viên
Hơn 30.000 bài học video & tài nguyên giảng dạy‐tất cả ở một nơi.
bài học video
Câu đố và Bảng tính
Tích hợp lớp học
kế hoạch bài học
Tôi chắc chắn sẽ giới thiệu Study. com đến các đồng nghiệp của tôi. Nó giống như một giáo viên vung cây đũa thần và làm việc cho tôi. Tôi cảm thấy như đó là một cứu cánh