JavaScript: справочник и путь обучения с нуля
JavaScript — язык, на котором работает почти всё в вебе. Этот раздел собирает то, что нужно знать о нём на практике: не полную документацию, а разбор мест, где ошибаются даже опытные.
Как устроен этот справочник
Три принципа, отличающие его от обычного набора уроков.
Разбираем ловушки, а не синтаксис. Что такое массив, знает любая документация. Здесь — почему [10, 9, 1].sort() даёт [1, 10, 9], почему .attr('checked') возвращает undefined при отмеченном чекбоксе и почему innerHTML с данными пользователя — это дыра.
jQuery подаём честно. По каждой jQuery-задаче даём нативный аналог 2026 года. Библиотека не запрещена — она опциональна, и понимать её код полезно, потому что он стоит на миллионах сайтов.
Где код не проверяли — так и написано. Браузерные примеры мы не прогоняли на живой странице и помечаем это прямо в статьях, в отличие от раздела Node.js, где приводится фактический вывод.
Путь для начинающего
- 1 Что такое JavaScriptЯзык против среды, при чём тут Java и ECMAScript
-
2
Ключевые словаЧто нельзя называть переменной и почему
undefinedособенный - 3 МассивыМутирующие методы против остальных — главное деление
-
4
ECMAScript 6
let, стрелки, деструктуризация — фундамент современного JS - 5 Работа с DOMКлассы, атрибуты, содержимое — и где тут XSS
Ловушки, на которых спотыкаются даже опытные
Каждая — реальная причина многочасовой отладки:
| Что | В чём подвох |
|---|---|
sort() без компаратора |
сравнивает как строки: [10, 9, 1] → [1, 10, 9] |
.attr('checked') |
возвращает undefined при отмеченном чекбоксе |
innerHTML с данными |
XSS: <img onerror> выполнится |
slice против splice |
одна буква — противоположное поведение |
| класс есть, стиля нет | это специфичность CSS, а не JavaScript |
href от пользователя |
javascript: в ссылке выполнит код |
Сквозная тема: безопасность фронтенда
Если читать раздел подряд, виден один принцип, повторённый в разных задачах.
Безопасность даёт не фильтрация, а то, что данные некому интерпретировать:
textContentвместоinnerHTML— строка не разбирается как разметка;- белый список протоколов в
href— разрешаем известное, а не запрещаем плохое; - тот же принцип на сервере —
execFileи параметризованный SQL.
Один и тот же ответ на четыре разные атаки: не чистите ввод, а отправляйте его туда, где его не выполнят.
jQuery или нативный код
Отдельная линия раздела. По каждой задаче показываем оба пути и честно говорим, когда библиотека не нужна:
- классы →
classList; - атрибуты →
getAttribute/dataset; - содержимое →
textContent; - стили → классы и CSS-переменные;
- автодополнение →
datalistили свой компонент.
Вывод везде один: jQuery в проекте — пользуйтесь; нет — не добавляйте ради этих задач. Как и CSS-препроцессоры, он стал опциональным.
Полный индекс по темам
Ниже — все материалы раздела по темам. Серверный JavaScript, Node.js, базы данных и потоки — в соседнем разделе Node.js.
Полный список статей по темам
JavaScript (37)
- Что такое Node.js и когда его не стоит брать 6 мин
- Что такое JavaScript и где он сегодня работает 5 мин
- Массивы в JavaScript: методы, мутации и подводные камни 5 мин
- Ключевые слова JavaScript: полный список и ловушки 5 мин
- Webpack в 2026: зачем нужен бандлер и что вместо него 4 мин
- Debounce и throttle в JavaScript: укрощаем события 3 мин
- Fetch в JavaScript: запросы к серверу без боли 4 мин
- JSON в JavaScript: parse, stringify и подводные камни 4 мин
- localStorage в JavaScript: хранение данных в браузере 3 мин
- Map и Set в JavaScript: когда не хватает объекта 4 мин
- Spread и rest в JavaScript: три точки 4 мин
- Symbol в JavaScript: зачем нужны символы 4 мин
- this в JavaScript: четыре правила связывания 4 мин
- Дата и время в JavaScript: объект Date без боли 4 мин
- Делегирование событий в JavaScript: один обработчик 3 мин
- Деструктуризация в JavaScript: объекты и массивы 4 мин
- Замыкания в JavaScript: как и зачем 4 мин
- Итераторы и генераторы в JavaScript простыми словами 4 мин
- Классы в JavaScript: сахар над прототипами 4 мин
- Методы Object: keys, entries, assign, freeze 4 мин
- Область видимости и hoisting в JavaScript 4 мин
- Обработка ошибок в JavaScript: try/catch и throw 4 мин
- Объекты в JavaScript: создание и работа 4 мин
- Операторы в JavaScript: сравнение, логика, современные 4 мин
- Переменные в JavaScript: var, let, const 4 мин
- Поиск элементов в DOM: querySelector и друзья 3 мин
- Примитивы и ссылки в JavaScript: копирование 4 мин
- Прототипы в JavaScript: наследование под капотом 4 мин
- Регулярные выражения в JavaScript: практический старт 4 мин
- Сборка мусора в JavaScript: как управляется память 4 мин
- События в JavaScript: addEventListener на практике 4 мин
- Создание и изменение элементов DOM в JavaScript 3 мин
- Строки в JavaScript: методы и шаблонные литералы 4 мин
- Типы данных в JavaScript: примитивы и объекты 4 мин
- Формы и валидация в JavaScript: обработка ввода 4 мин
- Функции в JavaScript: объявление, выражение, стрелки 4 мин
- Числа и Math в JavaScript: округление и точность 4 мин
jQuery (7)
- Как узнать класс элемента: jQuery и нативный JavaScript 4 мин
- Автозаполнение поля: jQuery UI Autocomplete и datalist 4 мин
- Получить значение атрибута: jQuery .attr() и нативный JS 5 мин
- Удалить атрибут: jQuery .removeAttr() и нативный JS 5 мин
- Установить или изменить атрибут: jQuery и нативный JS 5 мин
- Изменить содержимое элемента: html(), text() и XSS 4 мин
- Изменение стилей и классов: jQuery .css() и нативный JS 4 мин
ECMAScript 6 (2)
HTML5 API (2)
Частые вопросы
С чего начать изучение JavaScript?
Нужно ли учить jQuery в 2026?
Чем этот раздел отличается от справочника MDN?
.attr('checked') врёт, почему sort() путает числа, чем innerHTML опасен. Не «что есть в языке», а «где о него спотыкаются».JavaScript или TypeScript учить сначала?
Что общего у всех статей раздела?
textContent вместо innerHTML, белый список протоколов в href, экранирование данных — всё это один принцип, показанный в разных задачах.