Scope and Closures
Scope defines where variables are accessible. There are two main types:
- Global Scope: Variables declared outside functions are accessible anywhere.
- Local Scope: Variables declared inside a function are only accessible within it.
let globalVar = "I am global";
function showScope() {
let localVar = "I am local";
console.log(globalVar); // Accessible
console.log(localVar); // Accessible
}
console.log(localVar); // Error
Closures occur when a function retains access to its lexical scope even when executed outside that scope.
function outer() {
let counter = 0;
return function inner() {
counter++;
console.log(counter);
}
}
const increment = outer();
increment(); // 1
increment(); // 2