Стажировка
Открыта запись на бесплатный пробный месяц! Жми для подробностей! →
Бесплатный курс: Практика на Реальных Проектах и Работы в Портфолио! Мы уже начали, но можно присоединится! Жми для записи!

Основной учебник JavaScript

Основы

Введение Запуск JavaScript Первая программа на JavaScript Разбор кода программы Дальнейшие примеры Файлы со скриптами Несколько файлов Замечание Кеширование файлов Строгий режим Комментарии Переменные Использование переменных Объявление нескольких переменных Изменения значений переменных Несколько let для одной переменной Математические операции с числами Математические операции с переменными Приоритет математических операций Равный приоритет Группирующие скобки Дроби Отрицательные числа Плюс перед переменными Остаток от деления Возведение в степень Приоритет возведения в степень Строки Сложение строк Длина строки Шаблонные строки Многострочность Специальные значения Значение undefined Значение null Значения true и false Значение NaN Infinity и -Infinity Консоль Тип данных в консоли Ошибки в консоли Константы Автоматическое преобразование типов Преобразование к числу Короткое преобразование к числу Преобразование некорректных чисел Выделение чисел Преобразование к строке Применение преобразования к строке Преобразование логического типа Преобразование к логическому типу Символы строки Неизменяемость строк Последний символ строки Строки с цифрами Обращение к цифрам числа Операции для изменения переменной Сокращенные операции в JavaScript Инкрементация Префиксный и постфиксный тип Неточные вычисления Функция prompt Проблема с типами в prompt Вывод в документ Практика на поиск ошибок Практика на операции Практика на формулы

Массивы

Введение в массивы Получение элементов Длина массива Изменение элементов Перезапись элементов массива Инкрементация элементов Добавление элементов по ключам Разреженные массивы Добавление элементов через push Ключи из переменных Оператор delete Практика на поиск ошибок

Объекты

Введение в объекты Вывод всего объекта Строковые ключи объектов Свойства объектов Ограничения на ключи объектов Изменение элементов Добавление элементов Неупорядоченность объектов Массив ключей объекта Длина объекта Ключи из переменных Ошибка обращения к элементу Ошибка обращения к свойству Вычисляемые свойства Оператор in Оператор delete Типизация объектов Массивы как объекты Отличаем массивы от объектов Объекты и примитивы Передача объектов по ссылке Константы Подход программирования через константы Практика на поиск ошибок

Условия

Конструкция if-else Операторы больше и меньше Проверка на равенство Проверка на неравенство Сравнение переменных Равенство строк Равенство строк и чисел Равенство по значению и типу Неравенство по значению и типу Логическое И Логическое ИЛИ Приоритет логических операторов Группировка условий Инвертирование логических выражений Условия с булевыми значениями Сравнение значений с булевым типом Сокращенная форма проверки на истину Сокращенная форма проверки на ложь Общая сокращенная форма проверки Сложные условия в сокращенной форме Необязательность конструкции else Необязательность фигурных скобок Проблема необязательности скобок Конструкция else if Вложенные конструкции if-else Конструкция switch-case Необязательность break Тернарный оператор Логические операции Функция confirm Область видимости Нюансы области видимости Проверка частей часа Проверка длины строк и массивов Проверка символов строки Проверка цифр числа Проверка остатка от деления Практика на поиск ошибок Практика

Циклы

Введение Цикл for-of Цикл for-in Цикл while Цикл for Цикл for для массивов Условия в циклах Накопление суммы чисел Накопление суммы элементов Формирование строк Цифры числа Необязательность фигурных скобок Проблема необязательности скобок Инструкция break Инструкция continue Вложенные циклы Область видимости Вложенные циклы и область видимости Заполнение массивов Изменение массивов Заполнение объектов Изменение объектов Работа с флагами Советы по написанию кода Советы по отладке кода Практика на поиск ошибок Практика

Многомерность

Многомерные массивы Трехмерный массив Произвольные массивы Перебор многомерных массивов Перебор через обычный for Заполнение многомерных массивов Проблемы при заполнении многомерных массивов Заполнение многомерных массивов по порядку Многомерные объекты Перебор многомерных объектов Многомерные структуры Перебор многомерных структур Массив объектов Ключи из переменных Добавление элементов в массивы Добавление элементов в объекты

Стандартные методы

Степени Функции округления Экстремумы Рандом Модули Регистр символов Вырезание строк Поиск по строкам Замена в строках Разбиение строк Концевые элементы Части массивов Вырезание массивов Поиск по массивам Ключи объектов Практика на поиск ошибок

Пользовательские функции

Введение Параметры функции Несколько параметров Параметры-переменные Необязательные параметры Инструкция return Последовательный вызов функций Toнкое место return Цикл и return Применение return в циклах Прием работы с return Флаги в функциях Логические операторы в функциях Советы по функциям Практика на поиск ошибок Практика на функции

Переменные функций

Глобальные переменные Локальные переменные Совпадение имен переменных Изменение глобальных переменных Глобальные переменные и параметры функций Совпадение имен с параметрами Параметры-объекты

Типы функций

Исходный код функции и результат Функция как переменная Запись функции в другую переменную Присваивание функций в переменные Совпадение имени функции и переменной Типы объявлений Разница объявлений функции Toчка с запятой при объявлении функций Нюансы функциональных выражений Функция с именем, но Function Expression Именованные функциональные выражения Как проверить тип функции Выражение слева Выражение справа Массив с функциями Объект с функциями Применение объекта с функциями

Вложенные функции

Передача функций параметрами Именованные функции Параметры передаваемых функций Передача числа параметром Применение Внутренние функции Область видимости вложенных функций Параметры внешней функции Параметры внешней и внутренней функций Одноименные параметры Функция, возвращающая функцию Любой уровень вложенности Параметры возвращаемой функции Функции-коллбэки Нюансы коллбэков Стрелочные функции Применение стрелочных функций синх. с переводом

Замыкания

Доступ к внешним переменным Лексическое окружение функций Применение лексического окружения Введение в замыкания Счетчик на замыканиях Нюанс локальная переменная Нюанс глобальная переменная

IIFE

Вызов функции на месте Присваивание функции в переменную Применение вызова функции на месте Круглые скобки Параметры Множественные вызовы Подводные камни Toчка с запятой для безопасности Замыкания и IIFE

Рекурсия

Введение Пример с параметром Сумма элементов массива при рекурсии Многомерные структуры Сумма элементов массива Манипуляции со структурами

Перебирающие методы

Метод map Метод forEach Метод filter Метод every Метод some Метод find перевод, задачи Метод reduce перевод, задачи

Оператор spread

Введение Более сложные примеры Экстремальные значения массива Слияние массивов Разбиение строк Разбиение чисел

Оператор rest

Оператор rest Сумма цифр Массивы в двухмерный Массивы в один

Деструктуризация

Деструктуризация массивов Массив из функции Пропуск элементов массива Лишние значения массива Остаток массива Значения по умолчанию для массивов Функции по умолчанию для массивов Объявление переменных для массивов Деструктуризация объектов Имена переменных для объектов Значения по умолчанию для объектов Переменные и значения по умолчанию для объектов Объявление переменных для объектов Параметры функций Деструктуризация oбъектов параметров функций

Время

Работа с объектом Date Форматирование Смена формата даты Получение дня недели Вывод даты словом Установка времени Формат timestamp Разность между timestamp Разность объектов с датами Автоматическая корректировка дат Нахождение последнего дня месяца Определение високосного года Проверка корректности Получение дня текущего года День следующего или предыдущего месяца День следующего или предыдущего года Разность моментов Момент времени дня Начало дня Конец дня Циклическая проверка моментов времени Практика на получение моментов времени Строковое сравнение Сравнение даты без года Попадание даты в промежуток Сравнение объектов с датой

Введение в DOM

Введение DOM элементы Получение DOM элементов Сложные селекторы DOM элемента Привязывание обработчиков Именованные обработчики Один обработчик к элементам Обработчики одного события Обработчики разных событий Текст элемента HTML код элемента Атрибуты тегов как свойства Работа с текстовыми полями Фокус текстовых полей Атрибуты-исключения Цепочки методов и свойств Преимущества и недостатки цепочек Объект this Преимущество this Получение группы элементов Именованные обработчики в цикле Анонимные обработчики в цикле Отвязывание обработчиков событий Отвязывание обработчиков в цикле Отвязывание анонимных обработчиков Советы по написанию кода Практика на поиск ошибок Практикум

Атрибуты

Метод получения атрибутов Метод установки атрибутов Метод удаления атрибутов Метод проверки атрибутов Пользовательские атрибуты Имена атрибутов с дефисами Обращение к атрибутам через методы Масссив CSS классов Добавление CSS классов Удаление CSS классов Проверка CSS классов Toгглинг CSS классов

Стилизация

Стилизация через атрибут style Стилизация свойств с дефисом Исключение при стилизации элементов Стилизация через CSS классы Преимущество стилизации с помощью CSS классов Применение cтилизации

Поиск

Нахождение потомков элементов Нахождение родителей элементов Поиск всех родителей элементов Поиск соседей элементов Поиск элемента по id Поиск элемента по имени тега Поиск элемента по имени класса Поиск внутри элемента

Узлы

Введение Перебор узлов циклом Название узлов Тип узлов Текст узлов

Формы

Работа с текстареа Блокировка элементов Работа с чекбоксами Чередование атрибутов без значений Работа с радиокнопками Событие change Событие input Методы focus и blur Практика на поиск ошибок

Выпадающие списки

Работа с выпадающими списками Атрибут value в выпадающих списках Изменение выбранного пункта списка Номер выбранного пункта списка Получение пунктов выпадающего списка Пункты как массив Работа с пунктами выпадающего списка Выбор пункта списка Получение выбранного пункта

Объект Event

Основы работы с объектом Event Координаты события Тип события Элемент события Получение нажатых клавиш Отслеживание клавиш-модификаторов Отмена действия по умолчанию Всплытие событий Целевой элемент при всплытии Прекращение всплытия событий Несколько обработчиков на элементе Немедленное прекращение всплытия Применение прекращения всплытия событий Погружение событий Обработчики на новые элементы Делегирование событий Универсальное делегирование событий

Контекст

Основы работы с контекстом Контекст непривязанной функции Потеря контекста Решение проблемы с контекстом Решение через переменную Решение через параметр Решение через стрелочную функцию Метод call Метод call с параметрами Метод apply Метод bind

Таймеры

Запуск таймера Счетчик на таймере Остановка таймера Кнопки для запуска Многократный запуск Кнопки для остановки Работа с DOM Таймеры и потеря контекста Практика на таймеры и DOM Задержка перед выполнением Таймер через задержку

Манипулирование элементами

Создание и вставка элементов Навешивание событий при вставке Создание элементов в цикле Навешивание обработчиков в цикле Удаление элементов Вставка с краю Вставка перед Смежная вставка Смежная вставка тегов Клонирование элементов Проверка элементов

Практика

Создание элементов из массива Практика на создание списков ul Создание таблиц Последовательное заполнение таблиц Создание таблицы из массива Создание таблицы из массива объектов Добавление рядов и колонок в таблицу Изменение ячеек таблицы Удаление новых элементов Ссылка на удаление элемента Создание ссылок на удаление Редактирование отдельного элемента Прячем текст при редактировании Редактирование в наборе элементов Удаление и редактирование Стилизация элементов Кнопки для скрытия и показа элемента Много элементов с кнопками показа Активация элементов Чередование стилей активации Практика на изменение элементов

Функции и DOM

Функции для работы с DOM элементом Функции для работы с группой элементов Передача коллбэка для работы с DOM Передача порядкового номера в коллбэк Передача элемента параметром функции Передача группы элементов параметрами Функция для создания HTML таблиц Возврат таблицы из функции Функция для создания таблицы из массива

Модули через замыкания

Конфликты переменных Модули через замыкания Практическое применение Передача параметров Передача родительского элемента Передача настроек модуля Параметры по умолчанию Экспорт переменных и функций Экспорт объекта в модулях через замыкания Библиотеки через замыкания
endesvitbn