Sobes.tech
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 - Բլոկային

Հասկացողությունը տարածքի մասին կարևոր է՝ փոփոխականների անունների բախումները կանխելու և մաքուր, կանխատեսելի կոդ գրելու համար։