Menu
Coddy logo textTech

Шпаргалка по JavaScript

Последнее обновление

Переменные (let, const, var)

Объявление значений; предпочитайте const, затем let, и избегайте var.

ОперацияСинтаксис
Блочная область, можно переназначатьlet count = 0;
Блочная область, нельзя переназначатьconst name = "Ada";
Функциональная область (устаревшее)var x = 1;
Объявить без значенияlet result;
Несколько объявленийlet a = 1, b = 2;
Константный объект (содержимое изменяемо)const user = {}; user.id = 1;

Типы данных

Примитивные и ссылочные типы и способы их проверки.

ТипПример
Числоlet n = 42;
Строкаlet s = "hi";
Логический типlet ok = true;
Массивlet arr = [1, 2, 3];
Объектlet obj = { id: 1 };
Null / undefinedlet a = null;, let b;
Проверить типtypeof n
ПреобразоватьNumber("7"), String(42), Boolean(0)

Строки и шаблонные литералы

Создание и обработка текста.

ОперацияСинтаксис
Шаблонный литералHi ${name}, age ${age} (оберните в обратные кавычки)
Длинаtext.length
Верхний / нижний регистрtext.toUpperCase(), text.toLowerCase()
Убрать пробелы по краямtext.trim()
Заменить все вхожденияtext.replaceAll("a", "b")
Разбить в массивtext.split(",")
Содержитtext.includes("js")
Срезtext.slice(0, 3)

Массивы и методы массивов

Упорядоченные коллекции и методы их обхода.

ОперацияСинтаксис
Добавить / удалить в концеarr.push(4), arr.pop()
Добавить / удалить в началеarr.unshift(0), arr.shift()
Преобразовать каждый элементarr.map(x => x * 2)
Оставить подходящие элементыarr.filter(x => x > 0)
Свести к одному значениюarr.reduce((sum, x) => sum + x, 0)
Найти элементarr.find(x => x.id === 1)
Проверка some / everyarr.some(f), arr.every(f)
Индекс значенияarr.indexOf(3), arr.includes(3)
Объединить в строкуarr.join(", ")

Объекты

Коллекции ключ-значение.

ОперацияСинтаксис
Создатьconst user = { id: 1, name: "Ada" };
Доступ к свойствуuser.name, user["name"]
Добавить / обновить свойствоuser.age = 25;
Удалить свойствоdelete user.age;
Получить все ключи / значенияObject.keys(user), Object.values(user)
Получить парыObject.entries(user)
Объединить объектыObject.assign({}, a, b)
Поверхностная копияconst copy = { ...user };

Управление потоком

Условия и циклы.

ОперацияСинтаксис
If / else if / elseif (x > 0) { … } else { … }
Тернарный операторconst y = x > 0 ? 1 : 0;
Switchswitch (x) { case 1: … break; }
Цикл forfor (let i = 0; i < 5; i++) { … }
For-of (значения)for (const item of arr) { … }
For-in (ключи)for (const key in obj) { … }
Цикл whilewhile (x < 10) { … }

Функции и стрелочные функции

Определение переиспользуемых вызываемых блоков.

ОперацияСинтаксис
Объявление функцииfunction add(a, b) { return a + b; }
Стрелочная функцияconst add = (a, b) => a + b;
Стрелочная с одним аргументомconst sq = x => x * x;
Стрелочная без аргументовconst now = () => Date.now();
Параметр по умолчаниюfunction f(x = 0) { … }
Rest-параметрыfunction f(...args) { … }
Немедленный вызов (IIFE)(() => { … })();

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

Распаковка значений и копирование/слияние структур.

ОперацияСинтаксис
Деструктуризация массиваconst [a, b] = arr;
Деструктуризация объектаconst { id, name } = user;
Переименование при распаковкеconst { id: userId } = user;
Значение по умолчаниюconst { age = 0 } = user;
Spread массиваconst all = [...a, ...b];
Spread объектаconst next = { ...user, age: 25 };
Rest при деструктуризацииconst [first, ...rest] = arr;

Промисы и async/await

Обработка асинхронной работы, например сетевых запросов.

ОперацияСинтаксис
Асинхронная функцияasync function load() { … }
Ожидание промисаconst data = await fetch(url);
Then / catchpromise.then(res => …).catch(err => …)
Try / catch с awaittry { await f(); } catch (e) { … }
Resolve / rejectPromise.resolve(1), Promise.reject(err)
Дождаться всехawait Promise.all([a, b])
Первый завершившийсяawait Promise.race([a, b])

Современный синтаксис JavaScript, который нужен чаще всего, на одной странице. Эта шпаргалка по JavaScript - быстрый справочник по повседневному ES6+: объявление переменных, методы строк и массивов, объекты, стрелочные функции, деструктуризация и async/await.

Всё здесь - стандартный JavaScript, который работает в современных браузерах и Node.js. Копируйте нужное или попробуйте любой фрагмент вживую в playground для JS - ничего устанавливать не нужно.

Часто задаваемые вопросы по шпаргалке JavaScript

Эта шпаргалка по JavaScript бесплатна?
Да. Эта шпаргалка по JavaScript полностью бесплатна, регистрация не требуется. Добавьте её в закладки и возвращайтесь, когда нужно посмотреть синтаксис, метод массива или паттерн асинхронного кода.
В чём разница между == и === в JavaScript?
== - это нестрогое равенство: оно приводит операнды к одному типу перед сравнением, поэтому 0 == "0" равно true. === - это строгое равенство: оно сравнивает и значение, и тип без приведения, поэтому 0 === "0" равно false. Почти во всех случаях предпочитайте ===!==) - это предсказуемо и избавляет от неожиданных приведений типов.
В чём разница между let, const и var?
const и let имеют блочную область видимости и появились в ES6; var имеет функциональную область видимости и старше. Используйте const для значений, которые никогда не переназначаете, let - для тех, что переназначаете, и избегайте var, чтобы не сталкиваться с проблемами всплытия (hoisting) и области видимости. Учтите, что содержимое объекта или массива, объявленного через const, всё равно можно менять - константной является только сама привязка.
Можно ли практиковать JavaScript онлайн?
Да. Откройте playground для JS, чтобы выполнить любой фрагмент из этой шпаргалки прямо в браузере - ничего устанавливать не нужно. А если нужна структура, бесплатный интерактивный курс JavaScript от Coddy шаг за шагом проведёт вас от переменных и циклов до методов массивов и async/await.
Подходит ли эта шпаргалка для начинающих?
Да. Она построена от основ (переменные, типы данных, строки) к деструктуризации и async/await, так что верхние разделы можно использовать с первого дня и постепенно осваивать современные возможности ES6+.
Coddy programming languages illustration

Изучайте JavaScript с Coddy

НАЧАТЬ