Skip to content

function hoisting sample 1

garevna edited this page Sep 19, 2018 · 4 revisions

◀️ hoisting

☕ 1

function delegat () {
    console.log ( x )
    y = x + 5
    console.log ( y )
    x = 5,    y = 10
    return  x * 4 +  y / 2
    var x = 1, y = 1
}

Хотя объявление переменных x и y стоит в коде после оператора return, при формировании контекста исполнения на первом этапе будет формироваться объект активации ( Lexical Environment ), и все переменные, объявленные внутри функции, будут включены в этот объект

Таким образом, объявление переменных x и y "поднимется" ( произойдет до начала выполнения кода функции )

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

console.log ( x ) 

значение переменной x еще не будет определено, поэтому в консоли будет undefined

Аналогично, на момент выполнения кода

y = x + 5

значение переменной x будет undefined, поэтому результатом операции присваивания будет NaN, что и выдаст в консоль код

console.log ( y )

После этого будет выполнен код

x = 5, y = 10

Переменные x и y получат значения

Поэтому функция вернет значение 25

Присваивание значений

x = 1, y = 1

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

◀️ hoisting

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


Новая версия


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