Висш учебник по JavaScript
Стилизация
Стилизация чрез атрибут style
Мерни единици в атрибута style
Грешки с мерни единици
Разопаковане на стойностите на CSS свойства
Нулиране на стилове чрез style
Масово задаване на стилове
Проблеми при четене на стилове
Четене на свойства от CSS файлове
Конвертиране на прочетените стойности
Стилизация с класове
Един клас за стилизация
Неудобство на класовете
Редуване на стилове чрез data-
Метрики на елементи
Разширяване на елементи в CSS
Тестов елемент
Клиентски размер на елемента
Пълен размер на елемента
Размери на елемента с превъртане
Превъртане на елементи
Промяна на превъртането на елемент
Превъртане на елемент до край
Разгъване на елемент
Ширина на лентата за превъртане
Метрики на прозореца
Размери на прозореца
Размери на прозореца с включване на скрола
Получаване на скрол на прозореца
Получаване и промяна на скрола на прозореца
Метод за скролиране на прозореца до позиция
Метод за скролиране на прозореца със стойност
Метод за скролиране на прозореца до елемент
Събитие за скролиране
Колекции Map
Колекции Set
Въведение
Начално запълване
Полезни възможности
Обхождане с цикъл
Преобразуване
Премахване на дублиращи елементи от масив
Получаване без дублиращи елементи
Псевдомасиви
Въведение
Прилика с масиви
Разлики
Проверка за масив
Преобразуване в масив
Типове псевдомасиви
Разлика между типовете
Символи
Въведение в тип Symbol
Описания на символа
Символи като ключове на обекти
Обхождане на обект със символи
Функция в обект
Операции с обекти във функция
Глобални символи
Получаване на името на символ
Добре известни символи
Итератори
Итерируеми обекти
Функция итератор
Извиквания на итератор
Генератори
Цикли в генератори
Еднократна работа на итератори
Итератор на обект
Създаване на итерируем обект
Генератор чрез изчислено свойство
Вграден итератор values
Вграден итератор keys
Вграден итератор entries
Три вградени итератора
Оператор spread и итератори
Вградени итератори за низове
Масив от цифри на число
Номериране на DOM елементи
Получаване на данни от DOM елементи
JSON формат
Хранилище
Въведение
Хранилище в дебъгера
Данни
Еднократно запазване
Предефиниране на данни
Изтриване на данни
Изчистване на хранилището
Брой записи
Получаване на ключ по номер
Обхождане на хранилището по индекси
Масиви от ключове и стойности на хранилището
Съхранение на структури
Модификация на съхранени структури
Практикум
Регулярни изрази
Въведение
Оператори за повторение
Групиращи скоби
Екраниране на специални символи
Големи скоби
Ограничаване на алчността
Групи символи
Набори от символи
Инвертиране на набори от символи
Особености на кирилицата
Специални символи вътре в набори
Групи символи вътре в набори
Специални символи-изключения вътре в набори
Символът капела вътре в набори
Особености на тирето вътре в набори
Игнориране на регистъра
Начало и край на ред
Граница на думи
Многоредовост
Команда 'или'
Променлива с регулярен израз
Метод test
Метод search
Метод split
Метод match
Групи в метода match
Глобален match
Глобален matchAll
Метод exec
Свойство lastIndex
Групи в метода replace
Колбек в метода replace
Групи по подразбиране в метода replace
Групи в самия регулярен израз
Именувани групи
Именувани групи вътре в израза
Незапазващи скоби
Позитивно и негативно предварително търсене
Низ с регулярен израз
Флагове за низове
Обратна наклонена черта в низове
Изключителни ситуации
Въведение
Видове възникващи ситуации
Улавяне на изключения
Разработка с try-catch
Улавяне на изключения във вложения код
Обект с изключение
Основни типове изключения
Прилагане на типове изключения
Хвърляне на изключения
Хвърляне на различни типове изключения
Хвърляне на собствени типове изключения
Пример за изключение с data- атрибути
Пример за изключение с JSON
Пренасяне на изключения
Асинхронност
Синхронен и асинхронен код
Асинхронност на събитийния модел
Асинхронност на зареждане на изображения
Изключителни ситуации в асинхронен код
Асинхронни callback функции
Въведение
Асинхронно предаване на резултат в callback
Предаване на параметри в асинхронен callback
Обработка на изключения в асинхронни callback функции
Зареждане на изображения
Проблемът callback hell
Асинхронно зареждане на изображения в цикъл
Промисы
Въведение в промисовете
Изключителни ситуации
Обект с грешка
Отделен прихващане на изключения
Състояния на промиса
Вериги от промиси
Промисове във веригата
Изключения във вериги от промиси
Работа с масиви от промиси
Създаване на изпълнени промиси
Промсификация на асинхронен код
Проблемът promise hell
Промисове в синхронен стил
Изключения в синхронен стил
Библиотеки
Инструменти
Семантично версиониране
Терминал
NodeJS
Въведение в npm
Инсталиране чрез npm
Кратка форма на инсталиране
Зависимости във файла package.json
Dev зависимости
Формати на версиите на зависимостите
Настройки на файла package.json
Създаване на файл package.json
Прехвърляне на npm проект
Файл package-lock.json
Актуализиране на пакети
Премахване на пакети
Глобално инсталиране чрез npm
Глобално премахване на пакети
Инструмент npx
Стартиране на скриптове чрез npm
Мениджър Yarn
ES Модули
Въведение в модулите
Включване на ES модули
Инсталиране на Webpack
Принцип на работа на Webpack
Настройка на Webpack
Настройка на стартиране на сглобяването на Webpack
Тестово сглобяване чрез Webpack
Свързване на бандъла към верстката
Създаване на ES модул
Свързване на ES модул
Преименуване при импорт
Импорт на цялото съдържание на модул
Експорт по подразбиране
Комбинация от експорти
Импорт на цялото съдържание при комбинация от експорти
Експорт на стойности
Стойности като константи
Импорт на npm модули
Динамичен импорт
Динамичен множествен импорт
Преобразуване на CommonJS модули
HTTP протокол
Тестов сървър
Въведение
Използване
Изпълнение на код
Генериране на HTML
Заглавки на отговора
Конфигуриране на порт
Множествено стартиране
Форми
Изпращане на форми
Методи за изпращане на форми
Изпращане на форми с GET метод
Изпращане на форми с POST метод
GET заявки
Приложение на GET заявки
Бутони на формата
Изпращане на форми чрез JavaScript
Забрана за изпращане на форма
Въведение в FormData
Методи на FormData
Итератори на FormData
AJAX
Въведение в AJAX
Основи на работа с fetch
Код на HTTP отговор
Успешност на заявка
Изключителни ситуации
Пълно прихващане на грешки
Заглавки на HTTP отговор
Получаване на JSON
Заглавки на HTTP заявка
GET заявки
POST заявки
Данни чрез URLSearchParams
Данни чрез FormData
Изпращане на цялата форма
Изпращане на JSON
Политика на CORS
Предаване на бисквитки
Синхронен стил
Работа с canvas
Начало на работа
Рисуване на линии
Рисуване на правоъгълници
Рисуване на окръжности
Смяна на цвета на линията
Смяна на размера на линиите
Цикли
Оптимизация на кода
Фактори за скорост на зареждане на сайта
Налични ресурси
Оптимизация на повтарящи се операции
Оптимизация на повторение на тежки операции
Оптимизация на циклични операции
Оптимизация на излишни проходи на цикъл
Оптимизация чрез вградени функции
Избор на оптимален алгоритъм
Оптимизация на използването на регулярни изрази
Оптимизация на работата с DOM
Оптимизация на потреблението на памет
Оптимизация на преобразуването в масив
Оптимизация на манипулаторите на събития
Оптимизация на скорост за сметка на памет
Данни
Имутабилност
Копие на масив
Копие на обект
Добавяне на елементи в масив
Премахване на елементи от масив
Промяна на елементи в масиви
Масив от обекти
Генериране на случайно id
Добавяне на елемент с id
Премахване на елемент по id
Промяна на елемент по id
Промяна на едно свойство по id
Получаване на елемент по id