Основен учебник по 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
Последователно извикване на функции
Тънко място на return
Цикъл и return
Приложение на return в цикли
Прием за работа с return
Флагове във функции
Логически оператори във функции
Съвети за функции
Практика върху намиране на грешки
Практика върху функции
Променливи на функции
Глобални променливи
Локални променливи
Съвпадение на имена на променливи
Промяна на глобални променливи
Глобални променливи и параметри на функции
Съвпадение на имена с параметри
Параметри-обекти
Типове функции
Изходен код на функцията и резултат
Функция като променлива
Записване на функция в друга променлива
Присвояване на функции в променливи
Съвпадение на името на функцията и променливата
Типове декларации
Разлика в декларациите на функции
Точка и запетая при деклариране на функции
Нюанси на функционалните изрази
Функция с име, но Function Expression
Именувани функционални изрази
Как да проверите типа на функция
Израз отляво
Израз отдясно
Масив с функции
Обект с функции
Прилагане на обект с функции
Вложени функции
Подаване на функции като параметри
Именувани функции
Параметри на подаваните функции
Подаване на число като параметър
Приложение
Вътрешни функции
Обхват на видимост на вложените функции
Параметри на външната функция
Параметри на външна и вътрешна функция
Едноименни параметри
Функция, която връща функция
Всяко ниво на влагане
Параметри на върнатата функция
Функции за обратно извикване
Нюанси на функциите за обратно извикване
Стреловидни функции
Приложение на стреловидните функции
синх. с превода
Заминания
Достъп до външни променливи
Лексикална среда на функции
Прилагане на лексикална среда
Въведение в заминания
Брояч на заминания
Нюанс локална променлива
Нюанс глобална променлива
IIFE
Извикване на функция на място
Присвояване на функция на променлива
Приложение на извикване на функция на място
Кръгли скоби
Параметри
Множествени извиквания
Подводни камъни
Защитна точка и запетая
Затваряния и IIFE
Рекурсия
Въведение
Пример с параметър
Сума на елементите на масив при рекурсия
Многомерни структури
Сума на елементите на масив
Манипулации със структури
Методи за обхождане
Метод map
Метод forEach
Метод filter
Метод every
Метод some
Метод find
превод, задачи
Метод reduce
превод, задачи
Оператор spread
Въведение
По-сложни примери
Екстремни стойности на масив
Сливане на масиви
Разделяне на стрингове
Разделяне на числа
Оператор rest
Деструктуриране
Деструктуриране на масиви
Масив от функция
Пропускане на елементи от масив
Свръхни стойности на масив
Остатък от масив
Стойности по подразбиране за масиви
Функции по подразбиране за масиви
Деклариране на променливи за масиви
Деструктуриране на обекти
Имена на променливи за обекти
Стойности по подразбиране за обекти
Променливи и стойности по подразбиране за обекти
Деклариране на променливи за обекти
Параметри на функции
Деструктуриране на обекти параметри на функции
Време
Работа с обекта Date
Форматиране
Смяна на формата на датата
Получаване на ден от седмицата
Извеждане на датата с думи
Задаване на време
Формат на timestamp
Разлика между timestamp
Разлика на обекти с дати
Автоматична корекция на дати
Намиране на последния ден от месеца
Определяне на високосна година
Проверка на коректност
Получаване на ден от текущата година
Ден от следващия или предишния месец
Ден от следващата или предишната година
Разлика на моменти
Момент от време на деня
Начало на деня
Край на деня
Циклична проверка на моменти от време
Практикум върху получаване на моменти от време
Сравнение на низове
Сравнение на дата без година
Попадане на дата в интервал
Сравнение на обекти с дата
Въведение в DOM
Въведение
DOM елементи
Получаване на DOM елементи
Сложни селектори за DOM елементи
Свързване на манипулатори
Именувани манипулатори
Един манипулатор към елементи
Манипулатори за едно събитие
Манипулатори за различни събития
Текст на елемента
HTML код на елемента
Атрибути на таговете като свойства
Работа с текстови полета
Фокус на текстовите полета
Атрибути-изключения
Вериги от методи и свойства
Предимства и недостатъци на веригите
Обект this
Предимство на this
Получаване на група от елементи
Именувани манипулатори в цикъл
Анонимни манипулатори в цикъл
Отмяна на свързването на манипулатори за събития
Отмяна на свързването на манипулатори в цикъл
Отмяна на свързването на анонимни манипулатори
Съвети за писане на код
Практика за намиране на грешки
Практикум
Атрибути
Метод за получаване на атрибути
Метод за задаване на атрибути
Метод за премахване на атрибути
Метод за проверка на атрибути
Потребителски атрибути
Имена на атрибути с дефиси
Обръщение към атрибути чрез методи
Масив от CSS класове
Добавяне на CSS класове
Премахване на CSS класове
Проверка на CSS класове
Превключване на CSS класове
Стилизация
Стилизация чрез атрибут style
Стилизация на свойства с тире
Изключение при стилизиране на елементи
Стилизация чрез CSS класове
Предимство на стилизирането с CSS класове
Прилагане на стилизация
Търсене
Намиране на наследници на елементи
Намиране на родители на елементи
Търсене на всички родители на елементи
Търсене на съседни елементи
Търсене на елемент по id
Търсене на елемент по име на таг
Търсене на елемент по име на клас
Търсене вътре в елемент
Възли
Форми
Работа с textarea
Блокиране на елементи
Работа с checkbox-и
Редуване на атрибути без стойности
Работа с радио бутони
Събитие change
Събитие input
Методи focus и blur
Практика в търсене на грешки
Падащи списъци
Работа с падащи списъци
Атрибут value в падащи списъци
Промяна на избрания елемент от списъка
Номер на избрания елемент от списъка
Получаване на елементи от падащ списък
Елементи като масив
Работа с елементи от падащ списък
Избор на елемент от списъка
Получаване на избрания елемент
Обект Event
Основи на работа с обекта Event
Координати на събитието
Тип на събитието
Елемент на събитието
Получаване на натиснати клавиши
Проследяване на модификаторни клавиши
Отмяна на действието по подразбиране
Издигане на събития
Целеви елемент при издигане
Спиране на издигането на събития
Няколко манипулатора на елемент
Незабавно спиране на издигането
Приложение на спирането на издигането на събития
Улавяне на събития
Манипулатори на нови елементи
Делегиране на събития
Универсално делегиране на събития
Контекст
Основи на работата с контекст
Контекст на несвързана функция
Загуба на контекст
Решаване на проблема с контекста
Решение чрез променлива
Решение чрез параметър
Решение чрез стрелкова функция
Метод call
Метод call с параметри
Метод apply
Метод bind
Таймери
Стартиране на таймер
Брояч на таймер
Спиране на таймер
Бутони за стартиране
Многократно стартиране
Бутони за спиране
Работа с DOM
Таймери и загуба на контекст
Практика с таймери и DOM
Закъснение преди изпълнение
Таймер със закъснение
Манипулиране на елементи
Създаване и вмъкване на елементи
Закачане на събития при вмъкване
Създаване на елементи в цикъл
Закачане на манипулатори в цикъл
Премахване на елементи
Вмъкване отстрани
Вмъкване преди
Смежно вмъкване
Смежно вмъкване на тагове
Клониране на елементи
Проверка на елементи
Практика
Създаване на елементи от масив
Практика върху създаване на списъци ul
Създаване на таблици
Последователно попълване на таблици
Създаване на таблица от масив
Създаване на таблица от масив от обекти
Добавяне на редове и колони в таблица
Промяна на клетките на таблица
Премахване на нови елементи
Връзка за премахване на елемент
Създаване на връзки за премахване
Редактиране на отделен елемент
Скриване на текст при редактиране
Редактиране в набор от елементи
Премахване и редактиране
Стилизиране на елементи
Бутони за скриване и показване на елемент
Много елементи с бутони за показване
Активиране на елементи
Редуване на стилове на активиране
Практика върху промяна на елементи
Функции и DOM
Функции за работа с DOM елемент
Функции за работа с група елементи
Подаване на callback за работа с DOM
Подаване на пореден номер в callback
Подаване на елемент като параметър на функция
Подаване на група елементи като параметри
Функция за създаване на HTML таблици
Връщане на таблица от функция
Функция за създаване на таблица от масив