Параметры внешней и внутренней функций в JavaScript

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

function test(num) { function func(localNum) { console.log(localNum); } }

Передадим параметр внешней функции в вызов внутренней функции:

function test(num) { function func(localNum) { console.log(localNum); // выведет 1 } func(num); //!! передаем параметр } test(1); // передаем параметром число

Получается, что во внутренней функции будет доступна переменная num как внешняя переменная из родительской функции и переменная localNum, являющаяся локальной переменной внутренней функции.

Обе эти переменные будут иметь одинаковые значения:

function test(num) { function func(localNum) { console.log(num); // выведет 1 console.log(localNum); // выведет 1 } func(num); } test(1);

Разница между ними будет в следующем: если во внутренней функции изменить переменную num - она поменяется и во внешней функции:

function test(num) { function func(localNum) { num = 2; // меняем переменную num } func(num); // передаем параметр console.log(num); // выведет 2 } test(1); // передаем параметром число

А переменная localNum будет локальной. Ее изменения не будут приводить ни к каким изменениям во внешней функции. Да и сама переменная localNum не будет видна снаружи внутренней функции:

function test(num) { function func(localNum) { localNum = 2; // меняем переменную num } func(num); // передаем параметр } test(1); // передаем параметром число

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

function test(num) { function func(localNum) { console.log(localNum); } func(num); } test(1);

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

function test(num) { function func(localNum) { console.log(localNum); } func(num + 1); } test(1);

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

function test(num) { function func(localNum) { console.log(num); } func(num + 1); } test(1);

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

function test(num) { function func(localNum) { localNum = 2; } func(num); console.log(num); } test(1);

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

function test(num) { function func(localNum) { localNum = 2; } func(num); console.log(localNum); } test(1);

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

function test(num) { function func(localNum) { num = 2; } func(num); console.log(num); } test(1);



Чат с GPT Компилятор