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
← PrevNext →