Обхват на променливи в JavaScript
Обхватът на променлива е частта от контекста на изпълнение, в който съществува променливата. Обхватът определя дали имате достъп до променлива в даден контекст на изпълнение.
Променливите могат да имат локален или глобален обхват.
Локален обхват (функционално ниво)
Променливите, декларирани във функция, са локални променливи и са налични само в тази функция или във функции, дефинирани в рамките на тази функция (тази техника се нарича затваряне).
Пример за обхват на ниво функция:
Пример за обхват на ниво блок:
Винаги декларирайте локални променливи
Винаги декларирайте локални променливи, преди да ги използвате. Всъщност, ако използвате JSHint, той трябва да ви каже синтактична грешка, ако променливата не е декларирана. Проблемът с недекларираните променливи е показан в примера по-долу:
Локалните променливи имат предимство пред глобалните променливи
Ако декларирате глобална и локална променлива с едно и също име, локалната променлива ще има предимство, когато се опитате да използвате променливата във функция:
Глобален обхват
Всички променливи, декларирани извън функции, попадат в глобалния обхват.
Променлива, инициализирана без ключовата дума var, също е в глобалния обхват:
Променливи за повдигане
Заключение
Най-важното нещо, което трябва да запомните за обхвата е:
- винаги трябва да декларирате локални променливи с ключовата дума var;
- трябва да се опитате да минимизирате попадението на променливи в глобалния обхват.