Обхват на променливи в JavaScript

Обхватът на променлива е частта от контекста на изпълнение, в който съществува променливата. Обхватът определя дали имате достъп до променлива в даден контекст на изпълнение.

Променливите могат да имат локален или глобален обхват.

Локален обхват (функционално ниво)

Променливите, декларирани във функция, са локални променливи и са налични само в тази функция или във функции, дефинирани в рамките на тази функция (тази техника се нарича затваряне).

Пример за обхват на ниво функция:

Пример за обхват на ниво блок:

Винаги декларирайте локални променливи

Винаги декларирайте локални променливи, преди да ги използвате. Всъщност, ако използвате JSHint, той трябва да ви каже синтактична грешка, ако променливата не е декларирана. Проблемът с недекларираните променливи е показан в примера по-долу:

Локалните променливи имат предимство пред глобалните променливи

Ако декларирате глобална и локална променлива с едно и също име, локалната променлива ще има предимство, когато се опитате да използвате променливата във функция:

Глобален обхват

Всички променливи, декларирани извън функции, попадат в глобалния обхват.

Променлива, инициализирана без ключовата дума var, също е в глобалния обхват:

Променливи за повдигане

Заключение

Най-важното нещо, което трябва да запомните за обхвата е:

  • винаги трябва да декларирате локални променливи с ключовата дума var;
  • трябва да се опитате да минимизирате попадението на променливи в глобалния обхват.