Типы данных:

  • Строка: последовательность символов, заключенная в кавычки.
  • Число: числовое значение
  • Логическое: истинно или ложно
  • Undefined: значение, которое не было присвоено
  • Null: преднамеренное отсутствие какого-либо значения объекта
  • Объект: набор пар ключ-значение.
  • Массив: набор значений, доступ к которым осуществляется по индексу.

Переменные:

  • Декларация: let variableName;
  • Назначение: variableName = value;
  • Декларация и присвоение: let variableName = value;
  • Константы: const constantName = value;

Операторы:

  • Назначение: =
  • Арифметика: +, -, *, /, %
  • Сравнение: ==, ===, !=, !==, <, <=, >, >=
  • Логические: &&, ||, !
  • Объединение строк: +

Условные операторы:

  • if (condition) { // code to execute if condition is true }
  • if (condition) { // code to execute if condition is true } else { // code to execute if condition is false }
  • switch (expression) { case value1: // code to execute if expression equals value1 break; case value2: // code to execute if expression equals value2 break; default: // code to execute if expression doesn't match any value }

Петли:

  • for (initialization; condition; increment) { // code to execute }
  • while (condition) { // code to execute }
  • do { // code to execute } while (condition);

Функции:

  • Декларация: function functionName(parameters) { // code to execute }
  • Звонок: functionName(arguments);
  • Функция стрелки: (parameters) => { // code to execute }

Массивы:

  • Декларация: let arrayName = [value1, value2, value3];
  • Доступ к значениям: arrayName[index];
  • Изменение значений: arrayName[index] = newValue;
  • Методы массива: push(), pop(), shift(), unshift(), slice(), splice(), concat(), join(), reverse(), sort(), indexOf(), lastIndexOf(), filter(), map(), reduce()

Объекты:

  • Декларация: let objectName = { key1: value1, key2: value2 };
  • Доступ к значениям: objectName.key1; или objectName['key1'];
  • Изменение значений: objectName.key1 = newValue;
  • Методы объекта: Object.keys(), Object.values(), Object.entries(), Object.assign()

Манипуляции с DOM:

  • Выбор элементов: document.getElementById(), document.getElementsByClassName(), document.getElementsByTagName(), document.querySelector(), document.querySelectorAll()
  • Изменение свойств элемента: element.innerHTML, element.style.propertyName, element.setAttribute(), element.classList.add(), element.classList.remove()
  • Создание новых элементов: document.createElement()
  • Добавление элементов в DOM: parentElement.appendChild()

События:

  • Присоединение прослушивателей событий: element.addEventListener(eventType, callbackFunction);
  • Общие типы событий: click, mouseover, mouseout, keydown, keyup, submit

Асинхронный JavaScript:

  • setTimeout(): выполняет функцию через указанное время.
  • setInterval(): повторно выполняет функцию через заданный интервал.
  • Promises: представляет возможное завершение (или сбой) асинхронной операции и ее результирующее значение.
  • async/await: синтаксис для написания асинхронного кода, который выглядит как синхронный код.

Классы:

  • Декларация: class ClassName { constructor(parameters) { // code to execute } method1() { // code to execute } method2() { // code to execute } }
  • Создание нового объекта: let objectName = new ClassName(arguments);
  • Наследство: class ChildClassName extends ParentClassName { // code to execute }

Модули:

  • Экспорт значений: export const valueName = value;
  • Экспорт функций: export function functionName(parameters) { // code to execute }
  • Импорт значений: import { valueName } from './moduleName.js';
  • Импорт функций: import { functionName } from './moduleName.js';

Обработка ошибок:

  • Блок try/catch: используется для обнаружения ошибок и их корректной обработки.
  • оператор throw: используется для создания новой ошибки

Обычные выражения:

  • Регулярные выражения — это шаблоны, используемые для сопоставления комбинаций символов в строках.
  • Они создаются с помощью конструктора RegExp или с использованием литерального синтаксиса, заключенного в косую черту (/pattern/).

Литералы шаблона:

  • Литералы шаблонов — это способ более легкого и гибкого объединения строк и переменных.
  • Они создаются с использованием обратных кавычек ( ` ) вместо кавычек.
  • Переменные и выражения могут быть включены в литерал шаблона с использованием синтаксиса ${expression}.

Операторы распространения и отдыха:

  • Оператор распространения (…) используется для расширения итерируемого объекта (например, массива или строки) на отдельные элементы.
  • Оператор rest (…) используется для сбора оставшихся аргументов в массив.

Функции стрелки:

  • Стрелочные функции — это сокращенный синтаксис для написания функций.
  • Они используют оператор =› вместо ключевого слова function.
  • У них нет собственных ключевых слов this, arguments, super или new.target.

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

  • Деструктуризация — это способ извлечения значений из массивов и объектов в переменные.
  • Он использует синтаксис, аналогичный синтаксису для создания массивов и объектов.
  • Например, const [a, b, …rest] = [1, 2, 3, 4, 5] присвоит 1 a, 2 b и [3, 4, 5] rest.

Карта, набор и WeakMap/WeakSet:

  • Map и Set — это встроенные структуры данных JavaScript, используемые для хранения коллекций значений.
  • Map используется для пар ключ-значение, а Set — для уникальных значений.
  • WeakMap и WeakSet аналогичны Map и Set, но их ключи и значения хранятся слабо, что означает, что они могут быть удалены сборщиком мусора.