# Область видимости вложенных функций в JavaScript

Если функция содержит внутри другую функцию - переменные внешней функции видны во внутренней:

`function test() { let num = 1; // переменная внешней функции function func() { console.log(num); // выведет 1 } func(); // вызываем внутреннюю функцию } test(); // вызываем внешнюю функцию`

Также во внутренней функции будут видны переменные, определенные снаружи внешней функции:

`let num = 1; // глобальная переменная function test() { function func() { console.log(num); // выведет 1 } func(); // вызываем внутреннюю функцию }; test(); // вызываем внешнюю функцию`

Определите, не запуская код, что выведется в консоль:

`function test() { let num = 1; function func() { console.log(num); } func(); } test();`

Определите, не запуская код, что выведется в консоль:

`function test() { let num = 1; function func() { console.log(num); } } test();`

Определите, не запуская код, что выведется в консоль:

`function test() { let num = 1; function func() { console.log(num); } func(); }`

Определите, не запуская код, что выведется в консоль:

`function test() { let num; function func() { console.log(num); } num = 1 func(); num = 2 func(); } test();`
←→
↑
en ru