Junior
Ի՞նչ է փոփոխականների տեսադաշտը (scope) JavaScript-ում։
sobes.tech AI
Պատասխան AI-ից
Տարածաշրջանը որոշում է փոփոխականների, ֆունկցիաների և օբյեկտների հասանելիությունը կոդի որոշակի մասում:
JavaScript-ում կան մի քանի տեսակի տարածքներ:
- Աշխարհագրական տարածք (Global Scope): Փոփոխականները, որոնք հայտարարված են ցանկացած ֆունկցիայի կամ բլոկից դուրս, հասանելի են ցանկացած կոդի մասից:
- Ֆունկցիայի տարածք (Function Scope): Փոփոխականները, որոնք հայտարարված են ֆունկցիայի ներսում (ES6-ից առաջ), հասանելի են միայն այդ ֆունկցիայի և ներսի ֆունկցիաների մեջ:
- Բլոկային տարածք (Block Scope): Փոփոխականները, որոնք հայտարարված են
letևconst-ով բլոկների ներսում (օրինակ{}կամ ցիկլերում), հասանելի են միայն այդ բլոկի ներսում:
Օրինակ:
// Աշխարհագրական տարածք
let globalVar = "Ես աշխարհագրական եմ";
function someFunction() {
// Ֆունկցիայի տարածք (ES6-ից առաջ)
var functionVar = "Ես ֆունկցիայի մեջ եմ";
console.log(globalVar); // Հասանելի է գլոբալ փոփոխականը
if (true) {
// Բլոկային տարածք (let և const-ի համար)
let blockVar = "Ես բլոկում եմ";
console.log(functionVar); // Հասանելի է ֆունկցիայի փոփոխականը
console.log(blockVar); // Հասանելի է բլոկային փոփոխականը
}
// console.log(blockVar); // Խնդիր՝ blockVar-ը այստեղ հասանելի չէ
}
someFunction();
// console.log(functionVar); // Խնդիր՝ functionVar-ը այստեղ հասանելի չէ
Բառեր՝ փոփոխականների հայտարարելու համար և դրանց ազդեցությունը տարածքի վրա:
| Բառ | ES6-ից առաջ տարածք | ES6-ից հետո տարածք |
|---|---|---|
var |
Ֆունկցիոնալ | Ֆունկցիոնալ |
let |
- | Բլոկային |
const |
- | Բլոկային |
Հասկացողությունը տարածքի մասին կարևոր է՝ փոփոխականների անունների բախումները կանխելու և մաքուր, կանխատեսելի կոդ գրելու համար։