Junior
Kas yra kintamųjų apimtis (scope) JavaScript'e?
sobes.tech AI
Atsakymas iš AI
Apibrėžiamasis matas nustato kintamųjų, funkcijų ir objektų prieinamumą tam tikroje kodo dalyje.
JavaScript'e yra keletas apibrėžiamojo mato tipų:
- Pasaulinis apibrėžiamasis matas (Global Scope): Kintamieji, deklaruoti už bet kurios funkcijos ar bloko, yra prieinami bet kurioje kodo dalyje.
- Funkcinis apibrėžiamasis matas (Function Scope): Kintamieji, deklaruoti funkcijos viduje (iki ES6), yra prieinami tik šioje funkcijoje ir jos viduje esančiose funkcijose.
- Bloko apibrėžiamasis matas (Block Scope): Kintamieji, deklaruoti naudojant
letirconstblokų viduje (pvz.,{}arba cikluose), yra prieinami tik tame bloke.
Pavyzdys:
// Pasaulinis apibrėžiamasis matas
let globalVar = "Aš esu globalus";
function someFunction() {
// Funkcinis apibrėžiamasis matas (iki ES6)
var functionVar = "Aš esu funkcijos viduje";
console.log(globalVar); // prieinama globali kintamoji
if (true) {
// Bloko apibrėžiamasis matas (naudojant let ir const)
let blockVar = "Aš esu bloko viduje";
console.log(functionVar); // prieinama funkcijos kintamoji
console.log(blockVar); // prieinama bloko kintamoji
}
// console.log(blockVar); // klaida: blockVar čia nepasiekiama
}
someFunction();
// console.log(functionVar); // klaida: functionVar čia nepasiekiama
Kintamųjų deklaravimo žodžiai ir jų įtaka apibrėžiamajam matui:
| Raktažodis | Iki ES6 apibrėžiamasis matas | Po ES6 apibrėžiamasis matas |
|---|---|---|
var |
Funkcinis | Funkcinis |
let |
- | Blokinis |
const |
- | Blokinis |
Suprasti apibrėžiamąjį matą yra labai svarbu siekiant išvengti vardų konfliktų ir rašyti švarų bei prognozuojamą kodą.