Этот курс погружает во фронтенд-разработку и её базовые технологии:
Язык программирования JavaScript
Язык разметки HTML
Язык описания внешнего вида страниц CSS
Программа курса
2 лекции
Устройство современного веба и введение в JavaScript
Модуль 1
1. General. Как устроен современный веб
- История Интернета - Что такое Веб - Как работает Веб - Устройство браузеров - Как веб-страница появляется на экране компьютера
2. Введение в JavaScript
- Введение в JavaScript - JavaScript, JScript, EcmaScript - Среда исполнения - Node.js - Первый скрипт на JavaScript - Интерпретирование
6 лекций
Работа с данными в JavaScript
Модуль 2
3. Работа с данными в JavaScript. Часть 3
- «Проблемные» числа в JS - Продвинутая математика или IEEE 754 и хранение чисел в памяти компьютера
2. Работа с данными в JavaScript. Часть 2
- Стек и куча - Oddball, иммутабельные примитивы - Схематичное устройство памяти - Размер памяти для данных разного типа
1. Работа с данными в JavaScript. Часть 1
- Объявление переменных и инициализация - Типы данных в JS
4. Работа с данными в JavaScript. Часть 4
- BigInt
5. Работа с данными в JavaScript. Часть 5
- Объектная парадигма, классы-обертки над примитивами - Области видимости
6. Работа с данными в JavaScript. Часть 6
- Поднятие переменных - Переменные var, let, const - Приведение типов данных в JavaScript. Динамическая и слабая типизация
3 лекции
Контекст исполнения. Ключевое слово this
Модуль 3
3. Контекст исполнения. Ключевое слово this. Часть 3
- Инициализация ThisArgument - Bind, call и apply
2. Контекст исполнения. Ключевое слово this. Часть 2
- Execution Context - Операция NewDeclarativeEnvironment - Операция NewObjectEnvironment - Операция NewFunctionEnvironment - Операция NewGlobalEnvironment - Инициализация глобального контекста исполнения - Инициализация функционального контекста исполнения
1. Контекст исполнения. Ключевое слово this. Часть 1
- Виды контекста исполнения - EnvironmentRecord - Function Environment Record - Global Environment Record
2 лекции
ООП и прототипное наследование в JavaScript
Модуль 4
2. ООП и прототипное наследование в JavaScript. Часть 2
- Object.defineProperty и дескрипторы свойств - Object.create - Monkey Patching - Методы и [[HomeObject]]
1. ООП и прототипное наследование в JavaScript. Часть 1
- Прототипное наследование - Методы Object.setPrototypeOf и Object.getPrototypeOf - Function Environment Record - Global Environment Record
2 лекции
Инструменты конструирования объектов
Модуль 5
2. Инструменты конструирования объектов. Часть 2. Фабрики объектов
- Классы
1. Инструменты конструирования объектов. Часть 1. Фабрики объектов
- Фабрика объектов - Функции-конструкторы
Вы научитесь отвечать на два главных вопроса: как это работает и почему именно так
А ещё получите фундаментальную базу знаний и поймёте, как:
Избегать подводных камней в кодинге
Использовать механизмы работы JavaScript
Смотреть курс
МОДУЛЬ 1. Устройство современного веба и введение в JavaScript
1. General. Как устроен современный веб
Темы урока: - Что такое веб и как он устроен - Как происходит обмен данными в вебе - Что такое браузеры, зачем они нужны и как устроены - Процесс работы браузера от получения до отрисовки страницы
Теория: - Типы данных и как они влияют на сами данные - Переменные. Объявление и инициализация переменных - Типы данных в JavaScript - Принцип работы оператора typeof
1. Работа с данными в JavaScript. Часть 1
Практика: Приведение числа из обычного представления в компьютерное и обратно
Теория: - Стандарт IEEE 754 и хранение чисел в памяти программы - Кодирование чисел в памяти программы - Специальные числа в IEEE 754 и их реализация в JavaScript
Теория: - Безопасные числа, откуда они взялись и почему так называются - Тип данных BigInt и какие числа он описывает - Основные принципы работы с данными типа BigInt
Теория: - Объектные обёртки над данными в JavaScript и их предназначение - Область видимости данных в программе и её типы в JavaScript - LexicalEnvironment — концепция лексического окружения, её необходимость в ECMAScript, состав и реализация в JavaScript - Замыкание: откуда оно появляется и как связано со статической областью видимости
Теория: - Hoisting (поднятие): принцип работы и важность - Способы объявления переменных: var, let и const, и их отличия - Процессы приведения типов данных - Динамическая и слабая типизации и в чём они проявляются
6. Работа с данными в JavaScript. Часть 6
МОДУЛЬ 3. Контекст исполнения. Ключевое слово this
Теория: - Контекст исполнения: как устроен и из чего состоит - Алгоритмы создания различных записей среды: NewDeclarativeEnvironment, NewObjectEnvironment, NewFunctionEnvironment, NewGlobalEnvironment - VaribleEnvironment и LexicalEnvironment, а также данные, которые в них попадают - this — что это, откуда берётся и каким значением инициализируется
2. Контекст исполнения. Ключевое слово this. Часть 2
Теория: - Контекст исполнения и его связь с лексическим окружением - Виды контекстов исполнения и их отличия - КонцепцияEnvironmentRecord, назначение и типы - Структура Declarative EnvironmentRecord, Objective EnvironmentRecord, Function EnvironmentRecord и Global EnvironmentRecord
1. Контекст исполнения. Ключевое слово this. Часть 1
Теория: - ThisArgument — что это и какое значение туда попадает в зависимости от контекста исполнения - Методы bind, call, apply для ручного изменения ThisArgument - Ключевую особенность стрелочных функций в разрезе привязки ThisArgument
3. Контекст исполнения. Ключевое слово this. Часть 3
МОДУЛЬ 4. ООП и прототипное наследование в JavaScript
Теория: - Дескриптор свойства объектаамена прототипа объекта с помощью Object.create() - Антипаттерн Monkey patching и подводные камни
Теория: - Парадигма ООП - Прототип объекта и реализация парадигмы ООП в JavaScript - Отличиеполей __proto__ и .prototype - Цепочка наследования объектов: как устроена и когда заканчивается
1. ООП и прототипное наследование в JavaScript. Часть 1
2. ООП и прототипное наследование в JavaScript. Часть 2
МОДУЛЬ 5. Инструменты конструирования объектов
Теория: - Классы в JavaScript - Принцип работы классов - Типы классов и их особенности в JavaScript - Наследование классов
Теория: - Способы конструирования объектов - Функции-конструкторы: как они порождают объекты - Механизм работы оператора new при использовании совместно с функциями-конструкторами
1. Инструменты конструирования объектов. Часть 1
2. Инструменты конструирования объектов. Часть 2
Спикер курса
Василий Новиков
фронтенд-инженер, Авито
Профильное образование. Программирую с 8 класса школы и уже более 6 лет во фронтенд разработке. Делал всякие классные штуки от почтовых клиентов до больших интернет-банков. Сделал несколько успешных курсов по веб разработке в универе для студентов. Сейчас занимаюсь рекламными продуктами в Авито.
FAQ
Курс не про последовательность событий в языке, а про то, откуда берётся и как устроено каждое из них
Будет здорово, если слушатель уже имеет представление о программировании и знает, что такое переменные, циклы, функции и другие базовые конструкции. Подробно рассказывать про основные понятия общего программирования в рамках этого курса я не буду
Этот курс подойдет для любого слушателя. Если нет опыта, то будет непросто. Но лучше с чего-то начать, чем не начинать вовсе