Sobes.tech
Junior

Ce sunt variabilele nedeclarate (undeclared)?

sobes.tech AI

Răspuns de la AI

Variabilele nedeclare în JavaScript sunt variabile cărora li s-a atribuit o valoare fără a fi declarate folosind cuvintele cheie var, let sau const.

// Declarare explicită
let variabilăDeclarată = "Sunt declarată";

// Atribuire implicită (creează o variabilă nedeclara în modul non-strict)
// În modul strict ('use strict') va cauza o eroare ReferenceError
variabilăNeDeclarată = "Nu sunt declarată";

Comportamentul variabilelor nedeclare depinde de modul de execuție al codului:

  • Mod non-strict: Atribuirea unei valori unei variabile nedeclara crează o variabilă globală cu acel nume în Window (pentru browsere). Acest lucru este considerat o practică proastă, deoarece poluează spațiul global și complică depanarea.
  • Mod strict ('use strict'): Atribuirea unei valori unei variabile nedeclara va genera o eroare ReferenceError. Acest comportament este preferabil, deoarece previne crearea accidentală a variabilelor globale și promovează un cod mai previzibil.

Verificarea existenței unei variabile nedeclare poate fi făcută cu typeof. În modul non-strict, o variabilă nedeclara va avea tipul 'undefined', la fel ca o variabilă declarată, dar neinițializată.

let inițializatăDarNedefinită;
// console.log(typeof inițializatăDarNedefinită); // => 'undefined'

// În modul non-strict
// variabilăNeDeclarată = "Test";
// console.log(typeof variabilăNeDeclarată); // => 'undefined'

// Verificarea existenței variabilei înainte de acces
if (typeof potențialNeDeclarată !== 'undefined') {
    // Cod pentru lucrul cu potențialNeDeclarată
}

Utilizarea variabilelor nedeclare este o sursă potențială de erori și complică întreținerea codului. Se recomandă întotdeauna declararea explicită a variabilelor cu let, const sau var (deși var are propriile sale particularități și în codul modern se preferă let și const). Utilizarea modului strict ('use strict') este o practică standard pentru prevenirea acestor probleme.