Junior
Ce este domeniul în JavaScript?
sobes.tech AI
Răspuns de la AI
Domeniul de vizibilitate (Scope) în JavaScript este contextul în care sunt definite și accesibile variabilele și funcțiile.
Pe scurt, acesta determină unde în cod se poate face referire la o variabilă sau funcție.
Există mai multe tipuri de domenii de vizibilitate:
- Domeniu global (Global Scope): Variabilele declarate în afara oricărei funcții se află în domeniul global. Ele sunt accesibile din orice loc din cod.
// Variabilă globală let globalVar = "Sunt vizibil peste tot"; function showGlobal() { console.log(globalVar); // Disponibil în funcție } showGlobal(); - Domeniu local (Local/Function Scope): Variabilele declarate în interiorul unei funcții se află în domeniul local al acesteia. Sunt accesibile doar în acea funcție și în funcțiile încorporate, dar nu și în exterior.
function showLocal() { // Variabilă locală let localVar = "Văd doar aici"; console.log(localVar); } showLocal(); // console.log(localVar); // Eroare: localVar nu este definit - Domeniu de bloc (Block Scope): Introduse în ES6 (ES2015) cu
letșiconst. Variabilele declarate culetsauconstîn interiorul acoladelor ({}), cum ar fi în blocuri de cod, bucle sau condiții, au domeniu de bloc. Variabilele declarate cuvarnu au domeniu de bloc.if (true) { // Variabilă cu domeniu de bloc let blockVar = "Vizibil doar în acest bloc"; console.log(blockVar); } // console.log(blockVar); // Eroare: blockVar nu este definit for (let i = 0; i < 2; i++) { // Variabilă cu domeniu de bloc în buclă console.log(i); } // console.log(i); // Eroare: i nu este definit (dacă s-a folosit let)
Este, de asemenea, important să înțelegem conceptul de lanț de scope (Scope Chain). Când JavaScript încearcă să găsească valoarea unei variabile, verifică mai întâi în domeniul curent. Dacă nu o găsește, trece la domeniul exterior (părinte) și tot așa, până ajunge la domeniul global. Dacă variabila nu este găsită nici acolo, se aruncă o eroare ReferenceError.