Goal abandoned
The author does not write in the goal 8 years 3 months 17 days
General
Изучить JavaScript по learn.javascript.ru
Изучение языка JavaScript.
Goal Accomplishment Criteria
Доскональное знание и применение на практике JS
Personal resources
Время
Goal ecological compatibility
Чистый оптимизированный код.
-
Основы JavaScript
Привет, мир!Внешние скрипты, порядок исполненияСтруктура кодаСовременный стандарт, "use strict"ПеременныеПравильный выбор имени переменнойШесть типов данных, typeofОсновные операторыОператоры сравнения и логические значенияПобитовые операторыВзаимодействие с пользователем: alert, prompt, confirmУсловные операторы: if, '?'Логические операторыПреобразование типов для примитивовЦиклы while, forКонструкция switchФункцииФункциональные выраженияРекурсия, стекИменованные функциональные выраженияВсё вместе: особенности JavaScript
-
Введение
Введение в 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
-
Документ и объекты страницы
- Окружение: 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
- Коллбэки и события на компонентах
- Что изучать дальше
-
Веб-компоненты: взгляд в будущее
- С высоты орбитального полёта
- Пользовательские элементы: 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"
- Предпросмотр (неготово)
- Чёрная дыра бэктрекинга
-
О всякой всячине
- О всякой всячине
- Книги по JS, HTML/CSS и не только
- Асинхронное выполнение: setImmediate
- Позднее связывание "bindLate"
- Sublime Text: шпаргалка
- Выделение: Range, TextRange и Selection
- Применяем ООП: Drag'n'Drop++
- Куки, document.cookie
- Intl: интернационализация в JavaScript
- Особенности регулярных выражений в Javascript
- 877
- 09 August 2016, 14:51
Don't miss new posts!
Subscribe for the Goal and follow through to its completion