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 - Блоков

Разбирането на обхвата е критично за предотвратяване на конфликти с имена на променливи и за писане на чист и предсказуем код.