Замыкания и область видимости
-
Upload
rodion-golovushkin -
Category
Software
-
view
133 -
download
3
Transcript of Замыкания и область видимости
![Page 1: Замыкания и область видимости](https://reader036.fdocument.pub/reader036/viewer/2022062306/58eea2951a28ab2b498b4607/html5/thumbnails/1.jpg)
Замыкания и область видимостиJS fundamentals.
![Page 2: Замыкания и область видимости](https://reader036.fdocument.pub/reader036/viewer/2022062306/58eea2951a28ab2b498b4607/html5/thumbnails/2.jpg)
Function declaration, function expression
Function declaration
Function expression
![Page 3: Замыкания и область видимости](https://reader036.fdocument.pub/reader036/viewer/2022062306/58eea2951a28ab2b498b4607/html5/thumbnails/3.jpg)
Глобальный объект
![Page 4: Замыкания и область видимости](https://reader036.fdocument.pub/reader036/viewer/2022062306/58eea2951a28ab2b498b4607/html5/thumbnails/4.jpg)
Виды функций.
Coding Time
![Page 5: Замыкания и область видимости](https://reader036.fdocument.pub/reader036/viewer/2022062306/58eea2951a28ab2b498b4607/html5/thumbnails/5.jpg)
Порядок исполнения скриптов
1. Инициализация всех Function Declaration
![Page 6: Замыкания и область видимости](https://reader036.fdocument.pub/reader036/viewer/2022062306/58eea2951a28ab2b498b4607/html5/thumbnails/6.jpg)
Порядок исполнения скриптов
![Page 7: Замыкания и область видимости](https://reader036.fdocument.pub/reader036/viewer/2022062306/58eea2951a28ab2b498b4607/html5/thumbnails/7.jpg)
Порядок исполнения скриптов
1. Инициализация всех Function Declaration2. Инициализация всех var3. Начало выполнения скрипта
![Page 8: Замыкания и область видимости](https://reader036.fdocument.pub/reader036/viewer/2022062306/58eea2951a28ab2b498b4607/html5/thumbnails/8.jpg)
Порядок исполнения скриптов
![Page 9: Замыкания и область видимости](https://reader036.fdocument.pub/reader036/viewer/2022062306/58eea2951a28ab2b498b4607/html5/thumbnails/9.jpg)
Hoisting(Поднятие)
=
![Page 10: Замыкания и область видимости](https://reader036.fdocument.pub/reader036/viewer/2022062306/58eea2951a28ab2b498b4607/html5/thumbnails/10.jpg)
Нюансы поднятия
1. Функциональная область видимости
=
![Page 11: Замыкания и область видимости](https://reader036.fdocument.pub/reader036/viewer/2022062306/58eea2951a28ab2b498b4607/html5/thumbnails/11.jpg)
Нюансы поднятия
1. Функциональная область видимости
=
![Page 12: Замыкания и область видимости](https://reader036.fdocument.pub/reader036/viewer/2022062306/58eea2951a28ab2b498b4607/html5/thumbnails/12.jpg)
Нюансы поднятия
1. Функциональная область видимости
2. Количество объявлений одной переменной не имеет значения
=
![Page 13: Замыкания и область видимости](https://reader036.fdocument.pub/reader036/viewer/2022062306/58eea2951a28ab2b498b4607/html5/thumbnails/13.jpg)
Нюансы поднятия
1. Функциональная область видимости
2. Количество объявлений одной переменной не имеет значения
3. Сначала поднимается function declaration, а затем var
![Page 14: Замыкания и область видимости](https://reader036.fdocument.pub/reader036/viewer/2022062306/58eea2951a28ab2b498b4607/html5/thumbnails/14.jpg)
Lexical Environment (Лексическое окружение)
![Page 15: Замыкания и область видимости](https://reader036.fdocument.pub/reader036/viewer/2022062306/58eea2951a28ab2b498b4607/html5/thumbnails/15.jpg)
Lexical Environment (Лексическое окружение)
![Page 16: Замыкания и область видимости](https://reader036.fdocument.pub/reader036/viewer/2022062306/58eea2951a28ab2b498b4607/html5/thumbnails/16.jpg)
Скрытое свойство [[Scope]]
![Page 17: Замыкания и область видимости](https://reader036.fdocument.pub/reader036/viewer/2022062306/58eea2951a28ab2b498b4607/html5/thumbnails/17.jpg)
![Page 18: Замыкания и область видимости](https://reader036.fdocument.pub/reader036/viewer/2022062306/58eea2951a28ab2b498b4607/html5/thumbnails/18.jpg)
Счётчик
![Page 19: Замыкания и область видимости](https://reader036.fdocument.pub/reader036/viewer/2022062306/58eea2951a28ab2b498b4607/html5/thumbnails/19.jpg)
Замыкания. Задачи
![Page 20: Замыкания и область видимости](https://reader036.fdocument.pub/reader036/viewer/2022062306/58eea2951a28ab2b498b4607/html5/thumbnails/20.jpg)
Замыкания. Задачи
![Page 21: Замыкания и область видимости](https://reader036.fdocument.pub/reader036/viewer/2022062306/58eea2951a28ab2b498b4607/html5/thumbnails/21.jpg)
IIFE (Immediately Invoked Function Expression)
![Page 22: Замыкания и область видимости](https://reader036.fdocument.pub/reader036/viewer/2022062306/58eea2951a28ab2b498b4607/html5/thumbnails/22.jpg)
IIFE
Используйте модули и не засоряйте глобальный объект ненужными там
переменными (с) Ваш Кэп
![Page 23: Замыкания и область видимости](https://reader036.fdocument.pub/reader036/viewer/2022062306/58eea2951a28ab2b498b4607/html5/thumbnails/23.jpg)
IIFE
Coding Time
![Page 24: Замыкания и область видимости](https://reader036.fdocument.pub/reader036/viewer/2022062306/58eea2951a28ab2b498b4607/html5/thumbnails/24.jpg)
Cheating with LE. Bad practices.
eval with setInterval(string, number) setTimeout(string, number)
![Page 25: Замыкания и область видимости](https://reader036.fdocument.pub/reader036/viewer/2022062306/58eea2951a28ab2b498b4607/html5/thumbnails/25.jpg)
Cheating with LE. Eval.
Функция eval(string) позволяет выполнить код, переданный ей в виде строки.
Данный код будет выполнен в текущем пространстве имён В строгом режиме создаёт своё пространство имён
![Page 26: Замыкания и область видимости](https://reader036.fdocument.pub/reader036/viewer/2022062306/58eea2951a28ab2b498b4607/html5/thumbnails/26.jpg)
Cheating with LE. Eval.
![Page 27: Замыкания и область видимости](https://reader036.fdocument.pub/reader036/viewer/2022062306/58eea2951a28ab2b498b4607/html5/thumbnails/27.jpg)
Cheating with LE. With.
1. Позволяет работать со свойствами объекта в упрощённом стиле
2. Создаёт новое LE
![Page 28: Замыкания и область видимости](https://reader036.fdocument.pub/reader036/viewer/2022062306/58eea2951a28ab2b498b4607/html5/thumbnails/28.jpg)
![Page 29: Замыкания и область видимости](https://reader036.fdocument.pub/reader036/viewer/2022062306/58eea2951a28ab2b498b4607/html5/thumbnails/29.jpg)
Правила сборки мусора.
1. Никому не говорить о сборке мусора.2.Если переменная стала недоступна из глобального
объекта – она удаляется.
![Page 30: Замыкания и область видимости](https://reader036.fdocument.pub/reader036/viewer/2022062306/58eea2951a28ab2b498b4607/html5/thumbnails/30.jpg)
Утечка памяти в замыкании.
![Page 31: Замыкания и область видимости](https://reader036.fdocument.pub/reader036/viewer/2022062306/58eea2951a28ab2b498b4607/html5/thumbnails/31.jpg)
1. https://alexnisnevich.github.io/untrusted/ - Игра2. https://habrahabr.ru/post/138062/ - О работе таймеров