Skip to content

function scope sample 4

Nasimi Mamedov edited this page Aug 7, 2023 · 1 revision

◀️ scope

☕ 4

var __num = 1
function __showNum () {
        console.info ( "Вошли в контекст исполнения функции __showNum" )
        console.info ( `__num === ${__num}` )
        return
        function __num () {}
}
__showNum ()
console.info ( "Вышли из контекста исполнения функции __showNum" )
console.info ( `Теперь __num === ${__num}` )

В этом примере показано, как работает механизм hoisting

Переменная __num объявляется в глобальной области видимости с присвоением ей значения 1

Внутри тела функции __showNum после оператора return объявляется функция __num

На первый взгляд, при последовательном выполнении кода это объявление не должно сработать, поскольку оператор return стоит выше

Однако все объявления собираются в объект активации до того, как код начинает выполняться

Поэтому на момент, когда начнется выполнение кода функции __showNum, функция __num будет уже объявлена и будет благополучно находиться в Lexical Environment функции __showNum

Благодаря этому объявления переменных и функций "поднимаются" в области видимости "родителя" ( в нашем случае "родителем" является функция __showNum )

Убедиться в этом позволяет вывод в консоль переменной __num

После завершения выполнения кода функции __showNum ее контекст будет "демонтирован", и опять активным станет глобальный контекст, в котором переменная __num имеет значение 1

◀️ scope

© Nasimi Mamedov 2018

Курсы были созданы для студентов A-Level Ukraine.

Использование данных материалов или любой их части коммерческими школами ( курсами ) является нарушением авторских прав.

A-Level Ukraine


1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19

Занятие 1

⤵️

Занятие 2

⤴️ ⤵️

Занятие 3

⤴️ ⤵️

Занятие 4

⤴️ ⤵️

Занятие 5

⤴️ ⤵️

Занятие 6

⤴️ ⤵️

Занятие 7

⤴️ ⤵️

Занятие 8

⤴️ ⤵️

Занятие 9

⤴️ ⤵️

Занятие 10

⤴️ ⤵️

Занятие 11

⤴️ ⤵️

Занятие 12

⤴️ ⤵️

Занятие 13

⤴️ ⤵️

Занятие 14

⤴️ ⤵️

Занятие 15

⤴️ ⤵️

Занятие 16

⤴️ ⤵️

Занятие 17

⤴️ ⤵️

Занятие 18

⤴️ ⤵️

Занятие 19

⤴️ ⤵️

⤴️

ico20 Дополнительно
dir-20 Справочная инфо

Clone this wiki locally