Junior
Kas ir piekļuves joma JavaScript?
sobes.tech AI
Atbilde no AI
JavaScript skatījuma (Scope) ir konteksts, kurā ir definētas un pieejamas mainīgie un funkcijas.
Vienkāršāk sakot, tas nosaka, kur var atsaukties uz mainīgo vai funkciju kodā.
Ir vairāki skatījuma veidi:
- Globālais skatījums (Global Scope): Mainīgie, kas ir deklarēti ārpus jebkuras funkcijas, atrodas globālajā skatījumā. Tie ir pieejami no jebkuras vietas kodā.
// Globālais mainīgais let globalVar = "Es redzams visur"; function showGlobal() { console.log(globalVar); // pieejams funkcijā } showGlobal(); - Lokālais (funkcijas) skatījums (Local/Function Scope): Mainīgie, kas ir deklarēti funkcijas iekšienē, ir šīs funkcijas lokālajā skatījumā. Tie ir pieejami tikai šajā funkcijā un tās iekšējās funkcijās, bet ne ārpus tām.
function showLocal() { // Lokālais mainīgais let localVar = "Es redzams tikai šeit"; console.log(localVar); } showLocal(); // console.log(localVar); // kļūda: localVar nav definēts - Bloka skatījums (Block Scope): Parādījās ar ES6 (ES2015) ar
letunconstieviešanu. Mainīgie, kas ir deklarēti arletvaiconstiekavās ({}), vai tas būtu koda bloks, cikls vai nosacījuma operators, tiem ir bloka skatījums. Mainīgie, kas ir deklarēti arvar, tiem nav bloka skatījuma.if (true) { // Bloka skatījuma mainīgais let blockVar = "Es redzams tikai šajā blokā"; console.log(blockVar); } // console.log(blockVar); // kļūda: blockVar nav definēts for (let i = 0; i < 2; i++) { // Cikla bloka skatījums console.log(i); } // console.log(i); // kļūda: i nav definēts (ja izmantots `let`)
Ir arī svarīgi saprast Skatījuma ķēdes (Scope Chain) jēdzienu. Kad JavaScript mēģina atrast mainīgā vērtību, tas vispirms skatās pašreizējā skatījumā. Ja tur nav atrasts, tas pāriet uz ārējo (vecāku) skatījumu un tā tālāk, līdz globālajam skatījumam. Ja arī tur nav atrasts, tiek iemesta kļūda ReferenceError.