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 |
- | Блоков |
Разбирането на обхвата е критично за предотвратяване на конфликти с имена на променливи и за писане на чист и предсказуем код.