Upload
rodion-golovushkin
View
133
Download
3
Embed Size (px)
Citation preview
Замыкания и область видимостиJS fundamentals.
Function declaration, function expression
Function declaration
Function expression
Глобальный объект
Виды функций.
Coding Time
Порядок исполнения скриптов
1. Инициализация всех Function Declaration
Порядок исполнения скриптов
Порядок исполнения скриптов
1. Инициализация всех Function Declaration2. Инициализация всех var3. Начало выполнения скрипта
Порядок исполнения скриптов
Hoisting(Поднятие)
=
Нюансы поднятия
1. Функциональная область видимости
=
Нюансы поднятия
1. Функциональная область видимости
=
Нюансы поднятия
1. Функциональная область видимости
2. Количество объявлений одной переменной не имеет значения
=
Нюансы поднятия
1. Функциональная область видимости
2. Количество объявлений одной переменной не имеет значения
3. Сначала поднимается function declaration, а затем var
Lexical Environment (Лексическое окружение)
Lexical Environment (Лексическое окружение)
Скрытое свойство [[Scope]]
Счётчик
Замыкания. Задачи
Замыкания. Задачи
IIFE (Immediately Invoked Function Expression)
IIFE
Используйте модули и не засоряйте глобальный объект ненужными там
переменными (с) Ваш Кэп
IIFE
Coding Time
Cheating with LE. Bad practices.
eval with setInterval(string, number) setTimeout(string, number)
Cheating with LE. Eval.
Функция eval(string) позволяет выполнить код, переданный ей в виде строки.
Данный код будет выполнен в текущем пространстве имён В строгом режиме создаёт своё пространство имён
Cheating with LE. Eval.
Cheating with LE. With.
1. Позволяет работать со свойствами объекта в упрощённом стиле
2. Создаёт новое LE
Правила сборки мусора.
1. Никому не говорить о сборке мусора.2.Если переменная стала недоступна из глобального
объекта – она удаляется.
Утечка памяти в замыкании.
1. https://alexnisnevich.github.io/untrusted/ - Игра2. https://habrahabr.ru/post/138062/ - О работе таймеров