Scope (phạm vi) là một khái niệm quan trọng để hiểu cách các biến và hàm được truy cập và sử dụng trong mã của bạn. Scope xác định phạm vi hoạt động của các biến, đồng thời giúp tránh xung đột và lỗi trong mã.
Có 2 loại phạm vi chính:
Phạm vi toàn cục có thể truy cập từ bất kỳ đâu trong mã JavaScript. Khi bạn khai báo một biến ngoài bất kỳ hàm nào, nó sẽ tự động trở thành biến toàn cục.
var globalVariable = "I am a global variable";
function foo() {
console.log(globalVariable);
}
foo(); // Output: "I am a global variable"
Phạm vi hàm chỉ áp dụng cho các biến được khai báo trong cùng một hàm. Các biến này chỉ có thể truy cập từ bên trong hàm đó.
function foo() {
var functionVariable = "I am a function variable";
console.log(functionVariable);
}
foo(); // Output: "I am a function variable"
console.log(functionVariable); // Error: functionVariable is not defined
Phạm vi khối áp dụng cho các biến được khai báo bên trong một khối mã, chẳng hạn như một vòng lặp hoặc một câu lệnh điều kiện. Các biến này chỉ có thể truy cập từ bên trong khối mã đó.
function foo() {
if (true) {
var blockVariable = "I am a block variable";
console.log(blockVariable);
}
}
foo(); // Output: "I am a block variable"
console.log(blockVariable); // Error: blockVariable is not defined