Особенно комменты ребят - программистов.
Группа (чат): https://t.me/javascript_alert
Канал: https://t.me/truapps
Введение
Введение в JavaScript
Справочники и спецификации
Редакторы для кода
Консоль разработчика
Основы JavaScript
Привет, мир!
Внешние скрипты, порядок исполнения
Структура кода
Современный стандарт, "use strict"
Переменные
Правильный выбор имени переменной
Шесть типов данных, typeof
Основные операторы
Операторы сравнения и логические значения
Побитовые операторы
Взаимодействие с пользователем: alert, prompt, confirm
Условные операторы: if, '?'
Логические операторы
Преобразование типов для примитивов
Циклы while, for
Конструкция switch
Функции
Функциональные выражения
Рекурсия, стек
Именованные функциональные выражения
Всё вместе: особенности JavaScript
Далее…
Качество кода
Отладка в браузере Chrome
Советы по стилю кода
Как писать неподдерживаемый код?
Автоматические тесты при помощи chai и mocha
Структуры данных
Введение в методы и свойства
Числа
Строки
Объекты как ассоциативные массивы
Объекты: перебор свойств
Объекты: передача по ссылке
Массивы с числовыми индексами
Массивы: методы
Массив: перебирающие методы
Псевдомассив аргументов "arguments"
Дата и Время
Далее…
Замыкания, область видимости
Глобальный объект
Замыкания, функции изнутри
[[Scope]] для new Function
Локальные переменные для объекта
Модули через замыкания
Управление памятью в JavaScript
Устаревшая конструкция "with"
Далее…
Методы объектов и контекст вызова
Методы объектов, this
Преобразование объектов: toString и valueOf
Создание объектов через "new"
Дескрипторы, геттеры и сеттеры свойств
Статические и фабричные методы
Явное указание this: "call", "apply"
Привязка контекста и карринг: "bind"
Функции-обёртки, декораторы
Далее…
Некоторые другие возможности
Типы данных: [[Class]], instanceof и утки
Формат JSON, метод toJSON
setTimeout и setInterval
Запуск кода из строки: eval
Перехват ошибок, "try..catch"
ООП в функциональном стиле
Введение
Внутренний и внешний интерфейс
Геттеры и сеттеры
Функциональное наследование
ООП в прототипном стиле
Прототип объекта
Свойство F.prototype и создание объектов через new
Встроенные "классы" в JavaScript
Свои классы на прототипах
Наследование классов в JavaScript
Проверка класса: "instanceof"
Свои ошибки, наследование от Error
Примеси
Далее…
Современные возможности ES-2015
ES-2015 сейчас
Переменные: let и const
Деструктуризация
Функции
Строки
Объекты и прототипы
Классы
Тип данных Symbol
Итераторы
Set, Map, WeakSet и WeakMap
Promise
Генераторы
Модули
Proxy
Далее…
Часть 2
Документ, события, интерфейсы
Изучаем работу со страницей -- как получать элементы, манипулировать их
размерами, динамически создавать интерфейсы и взаимодействовать с
посетителем.
Документ и объекты страницы
Окружение: DOM, BOM и JS
Дерево DOM
Работа с DOM из консоли
Навигация по DOM-элементам
Поиск: getElement*
и querySelector* и не только
Внутреннее устройство поисковых методов
Свойства узлов: тип, тег и содержимое
Современный DOM: полифиллы
Атрибуты и DOM-свойства
Методы contains и compareDocumentPosition
Добавление и удаление узлов
Мультивставка: insertAdjacentHTML и DocumentFragment
Метод document.write
Стили, getComputedStyle
Размеры и прокрутка элементов
Размеры и прокрутка страницы
Координаты в окне
Координаты в документе
Итого
Далее…
Основы работы с событиями
Введение в браузерные события
Порядок обработки событий
Объект события
Всплытие и перехват
Делегирование событий
Приём проектирования "поведение"
Действия браузера по умолчанию
Генерация событий на элементах
Далее…
События в деталях
Мышь: клики, кнопка, координаты
Мышь: отмена выделения, невыделяемые элементы
Мышь: движение mouseover/out, mouseenter/leave
Мышь: Drag'n'Drop
Мышь: Drag'n'Drop более глубоко
Мышь: колёсико, событие wheel
Мышь: IE8-, исправление события
Прокрутка: событие scroll
Клавиатура: keyup, keydown, keypress
Загрузка документа: DOMContentLoaded, load, beforeunload, unload
Загрузка скриптов, картинок, фреймов: onload и onerror
Далее…
Формы, элементы управления
Навигация и свойства элементов формы
Фокусировка: focus/blur
Изменение: change, input, cut, copy, paste
Формы: отправка, событие и метод submit
Создание графических компонентов
Введение
Графические компоненты
Вёрстка графических компонентов
Шаблонизатор LoDash
Коллбэки и события на компонентах
Что изучать дальше
Часть 3
Тематические разделы
Важные темы, читать которые можно в любом порядке.
Веб-компоненты: взгляд в будущее
С высоты орбитального полёта
Пользовательские элементы: Custom Elements
Shadow DOM
Шаблоны <template>
Стили и селекторы
Импорты
Веб-компонент в сборе
Далее…
AJAX и COMET
Введение в AJAX и COMET
Node.JS для решения задач
Основы XMLHttpRequest
XMLHttpRequest POST, формы и кодировка
XMLHttpRequest: кросс-доменные запросы
XMLHttpRequest: индикация прогресса
XMLHttpRequest: возобновляемая закачка
COMET с XMLHttpRequest: длинные опросы
WebSocket
Протокол JSONP
Server Side Events -- события с сервера
IFRAME для AJAX и COMET
Атака CSRF
Метод fetch: замена XMLHttpRequest
Таблица транспортов и их возможностей
Далее…
Анимация
Кривые Безье
CSS-анимации
JS-Анимация
Оптимизация
Введение
Как работают сжиматели JavaScript
Улучшаем сжатие кода
Утечки памяти
Утечки памяти при использовании jQuery
Очистка памяти при removeChild/innerHTML
GCC: продвинутые оптимизации
GCC: статическая проверка типов
GCC: интеграция с Google Closure Library
Далее…
Окна и Фреймы
Открытие окон и методы window
Общение между окнами и фреймами
Кросс-доменные ограничения и их обход
Общение окон с разных доменов: postMessage
Привлечение внимания к окну
Атака Clickjacking и защита от неё
CSS для JavaScript-разработчика
О чём пойдёт речь
Единицы измерения: "px", "em", "rem" и другие
Все значения свойства "display"
Свойство "float"
Свойство "position"
Центрирование горизонтальное и
вертикальное
Свойства "font-size"
и "line-height"
Свойство white-space
Свойство "outline"
Свойство "box-sizing"
Свойство "margin"
Лишнее место под IMG
Свойство "overflow"
Особенности свойства "height" в %
Знаете ли вы селекторы?
CSS-спрайты
Правила форматирования CSS
Далее…
Сундучок с инструментами
Полезные расширения Firefox и Chrome
Скриптуемый отладочный прокси Fiddler
IE HTTP Analyzer
Регулярные выражения
Паттерны и флаги
Методы RegExp и String
Классы и спецсимволы
Наборы и диапазоны [...]
Квантификаторы +, *, ? и {n}
Жадные и ленивые квантификаторы
Скобочные группы
Обратные ссылки: \n и $n
Альтернация (или) |
Начало строки ^ и конец $
Многострочный режим, флаг "m"
Предпросмотр (неготово)
Чёрная дыра бэктрекинга
Далее…
О всякой всячине
Эволюция шаблонных систем для JavaScript
Книги по JS, HTML/CSS и не только
Асинхронное выполнение: setImmediate
Позднее связывание "bindLate"
Sublime Text: шпаргалка
Выделение: Range, TextRange и Selection
Применяем ООП:
Drag'n'Drop++
Куки,
document.cookie
Intl: интернационализация в JavaScript
Особенности регулярных выражений в Javascript
Далее…
Карта учебника