Sobes.tech
Junior

Cos'è la portata (scope) delle variabili in JavaScript?

sobes.tech AI

Risposta dell'AI

L'ambito definisce la disponibilità di variabili, funzioni e oggetti in una parte specifica del codice.

In JavaScript, ci sono diversi tipi di ambito:

  • Ambito globale (Global Scope): Le variabili dichiarate fuori da qualsiasi funzione o blocco sono accessibili da qualsiasi punto del codice.
  • Ambito di funzione (Function Scope): Le variabili dichiarate all'interno di una funzione (prima di ES6) sono accessibili solo all'interno di quella funzione e delle funzioni annidate.
  • Ambito di blocco (Block Scope): Le variabili dichiarate con let e const all'interno di blocchi (ad esempio, {} o cicli) sono accessibili solo all'interno di quel blocco.

Esempio:

// Ambito globale
let globalVar = "Sono globale";

function someFunction() {
  // Ambito di funzione (prima di ES6)
  var functionVar = "Sono dentro la funzione";
  console.log(globalVar); // Variabile globale accessibile

  if (true) {
    // Ambito di blocco (per let e const)
    let blockVar = "Sono dentro il blocco";
    console.log(functionVar); // Variabile di funzione accessibile
    console.log(blockVar); // Variabile di blocco accessibile
  }

  // console.log(blockVar); // Errore: blockVar non accessibile qui
}

someFunction();
// console.log(functionVar); // Errore: functionVar non accessibile qui

Parole chiave per dichiarare variabili e il loro impatto sull'ambito:

Parola chiave Ambito prima di ES6 Ambito dopo ES6
var Funzionale Funzionale
let - Di blocco
const - Di blocco

Comprendere l'ambito è fondamentale per evitare conflitti di nomi di variabili e scrivere codice pulito e prevedibile.