Область видимости в JavaScript



В JavaScript есть три области видимости:

1. глобальная

2. область видимости функции

3. блочная.



Глобальная переменная объявлена вне функции или блока и доступна в любом месте исходного кода:

 var num = 5;

function foo() {

console.log(num);

}

foo(); // 5

console.log(num); // 5

{

console.log(num); // 5

}



Локальная переменная доступна в любом месте внутри тела функции, в которой она была объявлена:

function foo() {

var num = 5;

console.log(num);

}

foo(); // 5

console.log(typeof num); // undefined



Блочная переменная объявляется с помощью ключевых слов let или const и доступна в любом месте внутри своего блока.

let num = 0;

{

let num = 5;

console.log(num); // 5

{

const num = 10;

console.log(num); // 10

}

console.log(num); // 5

}

console.log(num); // 0