JavaScript.

Путеводитель по сайту learn.javascript.ru

Случайно скопировал для себя. Там столько всего хорошего!
  • Особенно комменты ребят - программистов.
    Группа (чат): 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

    Далее…

    Карта учебника