JavaScript
- 1. Введение в JavaScript: история создания, назначение и роль в веб-разработке
- 2. Подключение JS к HTML: внутренний и внешний скрипты, атрибут async и defer
- 3. Базовый синтаксис: комментарии, точки с запятой, регистр символов
- 4. Переменные: var, let, const — различия и области видимости
- 5. Типы данных: примитивы (number, string, boolean, null, undefined, symbol, bigint)
- 6. Объекты: создание, свойства, методы, доступ и удаление значений
- 7. Массивы: индексация, методы push, pop, shift, unshift, slice, splice и др.
- 8. Оператор typeof: определение типа переменной
- 9. Приведение типов: неявное и явное преобразование (toNumber, toString, toBoolean)
- 10. Логические операторы: &&, ||, ! и их поведение в условиях
- 11. Условные конструкции: if...else, else if, тернарный оператор
- 12. Циклы: for, while, do...while, for...in, for...of
- 13. Управление циклами: break, continue, метки
- 14. switch-case: выбор между несколькими вариантами
- 15. Функции: объявление, вызов, параметры, возврат значения
- 16. Function Declaration vs Function Expression
- 17. Стрелочные функции: синтаксис, this, arguments
- 18. Области видимости: глобальная, функциональная, блочная
- 19. Замыкания: понятие и практическое применение
- 20. Hoisting: поднятие переменных и функций
- 21. Работа с объектом Math: математические вычисления и генерация случайных чисел
- 22. Работа с датами: Date API, форматирование и вычисления
- 23. Работа со строками: методы indexOf, substring, slice, split, trim и др.
- 24. Шаблонные строки: интерполяция и tagged templates
- 25. Регулярные выражения: RegExp, методы test(), match(), replace()
- 26. Объект Boolean: работа с логическими значениями
- 27. Объект Number: методы isFinite, isNaN, parseInt, parseFloat
- 28. Работа с массивами: map, filter, reduce, find, some, every, includes
- 29. Методы перебора массивов: forEach, keys, values, entries
- 30. Многомерные массивы и их обработка
- 31. spread и rest операторы: расширение и сбор элементов
- 32. Деструктуризация: извлечение значений из объектов и массивов
- 33. JSON: парсинг и сериализация данных
- 34. this: контекст вызова, bind, call, apply
- 35. Прототипы и наследование: prototype chain, Object.create()
- 36. Классы: объявление, конструктор, методы, extends, super
- 37. Инкапсуляция: приватные поля и методы (#)
- 38. Геттеры и сеттеры: управление доступом к свойствам
- 39. Статические методы и свойства классов
- 40. ООП в JavaScript: принципы и реализация
- 41. Понятие модуля: IIFE, CommonJS, AMD, ES Modules
- 42. Импорт и экспорт модулей: import/export, default и именованные экспорты
- 43. Асинхронность: однопоточность, call stack, event loop
- 44. Callback-функции: асинхронная передача управления
- 45. Promise: состояние pending, fulfilled, rejected
- 46. then/catch/finally: цепочки промисов
- 47. async/await: упрощение работы с асинхронным кодом
- 48. Обработка ошибок: try...catch, reject, catch()
- 49. setTimeout и setInterval: выполнение кода с задержкой или периодически
- 50. clearTimeout и clearInterval: отмена таймеров
- 51. fetch API: отправка HTTP-запросов и получение данных
- 52. DOM: Document Object Model, дерево элементов
- 53. Поиск элементов: getElementById, querySelector и другие
- 54. Изменение содержимого: innerHTML, textContent, insertAdjacentHTML
- 55. Создание и удаление элементов: createElement, appendChild, remove
- 56. Работа с атрибутами: getAttribute, setAttribute, hasAttribute
- 57. dataset: хранение пользовательских данных в data-атрибутах
- 58. Работа с классами: classList.add/remove/toggle/contains
- 59. Стилизация элементов: style, getComputedStyle
- 60. Работа с событиями: addEventListener, removeEventListener
- 61. Всплытие и погружение событий: stopPropagation
- 62. Делегирование событий: эффективная обработка множества элементов
- 63. Объект события: target, currentTarget, type, preventDefault
- 64. Формы: взаимодействие с input, textarea, select, button
- 65. Валидация форм: required, pattern, проверка через JS
- 66. Drag and Drop API: dragstart, dragover, drop, dragend
- 67. Clipboard API: работа с буфером обмена (copy, paste)
- 68. Intersection Observer: отслеживание видимости элемента
- 69. ResizeObserver: наблюдение за изменением размеров элемента
- 70. Web Storage API: localStorage и sessionStorage
- 71. IndexedDB: клиентская база данных для сложных приложений
- 72. Cookies: чтение и запись с помощью JS
- 73. Service Workers: кэширование, офлайн-доступ, push-уведомления
- 74. Web Workers: многопоточность в браузере
- 75. Canvas API: рисование 2D-графики
- 76. SVG и работа с ним через JS
- 77. WebGL: 3D-рендеринг в браузере
- 78. Анимации: requestAnimationFrame, CSS transitions
- 79. Работа с видео и аудио: HTMLMediaElement, controls, events
- 80. Fetch API: загрузка файлов, изображений, JSON и др.
- 81. FileReader: чтение файлов на стороне клиента
- 82. File API: работа с выбранными пользователями файлами
- 83. URL.createObjectURL: временное представление файлов
- 84. Geolocation API: определение местоположения пользователя
- 85. History API: изменение истории браузера без перезагрузки
- 86. WebSockets: двустороннее соединение с сервером
- 87. WebRTC: передача данных в реальном времени
- 88. Map и Set: коллекции уникальных значений
- 89. WeakMap и WeakSet: слабые ссылки на объекты
- 90. Promise.all, race, allSettled, any: работа с группой промисов
- 91. Async Iterators: асинхронный перебор
- 92. Generators: yield, next(), return()
- 93. Proxy: перехват и настройка операций над объектами
- 94. Reflect: унифицированный способ работы с объектами
- 95. Decorators: декораторы классов и методов (экспериментальный)
- 96. Private class fields и методы: #name, #method()
- 97. Optional chaining: безопасный доступ к вложенным свойствам (?.)
- 98. Nullish coalescing operator: ?? и сравнение с ||
- 99. BigInt: работа с числами больше Number.MAX_SAFE_INTEGER
- 100. Logical assignment operators: ||=, &&=, ??=
- 101. JSON.parse и JSON.stringify: преобразование данных
- 102. Error и наследники: RangeError, ReferenceError, SyntaxError, TypeError
- 103. Custom Errors: создание собственных типов ошибок
- 104. Debugging: console.log, debugger, breakpoints, source maps
- 105. Linting: ESLint, Prettier, правила форматирования
- 106. Тестирование: Jest, Mocha, chai, sinon, testing-library
- 107. Unit-тестирование: тестирование отдельных функций и модулей
- 108. Mocking и stubbing: имитация функционала в тестах
- 109. DOM-тестирование: проверка отрисовки и реакции на события
- 110. Тестирование асинхронного кода: async/await, done(), fake timers
- 111. TDD и BDD: подходы к написанию тестов до кода