Типы данных:
- Строка: последовательность символов, заключенная в кавычки.
- Число: числовое значение
- Логическое: истинно или ложно
- 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, но их ключи и значения хранятся слабо, что означает, что они могут быть удалены сборщиком мусора.