Каталог
Веб-разработка с нуля: четыре курса по порядку.
HTML, затем CSS, JavaScript и SQL. Каждый курс говорит, что нужно знать до него и что вы будете уметь после.
Загружаем курсы…
Каталог
HTML, затем CSS, JavaScript и SQL. Каждый курс говорит, что нужно знать до него и что вы будете уметь после.
Загружаем курсы…
Nexus
Весь JavaScript — от первой строки до каждой возможности языка. Первая часть учит программировать: переменные, условия, функции, массивы и объекты, DOM и события, формы, асинхронность и fetch. Вторая — разбирает язык целиком: синтаксис, все встроенные объекты и их методы, регулярные выражения, Intl, бинарные данные. Каждая конструкция — карточка с живым примером, каждое задание проверяется прямо в браузере.
Маршрут «Веб-разработка с нуля» · курс 3 из 4
114 уроков · 17 ч 16 мин
Зачем странице JavaScript, тег script и первая команда console.log().
console.log, console.warn, console.error, console.table и несколько значений через запятую.
Объявление переменных let и const, присваивание, имена переменных и почему не var.
Числа, строки, логические значения, null и undefined, и оператор typeof.
Как читать сообщение об ошибке: SyntaxError, ReferenceError, TypeError; комментарии // и /* */.
Условия if, else if, else и блоки кода в фигурных скобках.
Короткое условие ? :, выбор из многих вариантов switch / case / break / default.
Цикл for, цикл while, бесконечные циклы и как их избежать.
Перебор for…of, досрочный выход break, пропуск шага continue, do…while.
Считаем сумму корзины циклом, применяем скидку условием и печатаем итог.
Объявление function, вызов, параметры, return и почему функция без return возвращает undefined.
Значения параметров по умолчанию, ...rest-параметры и arguments.
Запись () => {}, короткий return, функциональные выражения и функции как значения.
Глобальные и локальные переменные, блочная область, замыкание и счётчик на замыкании.
Передача функции как аргумента, колбэки, функции высшего порядка.
Создание массива, индексы с нуля, length, push, pop, unshift, shift, indexOf и includes.
Перебор forEach, преобразование map и отбор filter — без ручных циклов.
Поиск find и findIndex, проверки some и every.
Метод reduce, аккумулятор и начальное значение; сумма и подсчёт.
sort с функцией сравнения, slice, splice, concat, join, reverse и toSorted.
Распаковка массивов и объектов, оператор ... для копий и слияния.
Литерал объекта, свойства через точку и квадратные скобки, добавление, изменение и удаление, оператор in.
Функции внутри объекта, короткая запись методов, this, сокращённые свойства.
Object.keys, Object.values, Object.entries, for…in и Object.fromEntries.
Формат JSON, JSON.stringify и JSON.parse, отличие JSON от объекта JavaScript.
class, constructor, методы класса, new, наследование extends и super, геттеры get.
Что такое DOM, document, querySelector, querySelectorAll и getElementById.
textContent, innerHTML и почему innerHTML с данными пользователя опасен, value у полей.
classList add/remove/toggle/contains, style, getAttribute, setAttribute, dataset и hidden.
createElement, append, prepend, remove, replaceChildren и сборка списка из массива.
parentElement, children, closest, nextElementSibling и matches.
addEventListener, событие click, функция-обработчик и removeEventListener.
event, target и currentTarget, preventDefault, stopPropagation, всплытие.
События input и change, живой поиск по списку, focus и blur.
keydown и keyup, event.key, сочетания с Ctrl и Shift, закрытие по Escape.
Один обработчик на контейнер, event.target.closest, data-атрибуты и динамические элементы.
Корзина: добавление по кнопкам, счётчик, сумма и очистка.
Событие submit, preventDefault, чтение полей через form.elements.
Своя проверка полей, сообщения об ошибках, checkValidity, setCustomValidity и aria-invalid.
new FormData(form), get, перебор и Object.fromEntries для превращения формы в объект.
setTimeout, setInterval, clearTimeout, clearInterval и почему код не ждёт таймер.
Promise, then, catch, finally, состояния pending/fulfilled/rejected и цепочки.
Асинхронные функции async, ожидание await, try/catch вокруг await и параллельное ожидание.
fetch, Response, res.ok, res.json(), отправка POST с JSON и заголовками.
Состояния загрузки, ошибки и пустого результата; повтор запроса; finally для спиннера.
Загрузка каталога товаров, фильтр по категориям и отправка заказа на сервер.
localStorage setItem, getItem, removeItem, хранение объектов через JSON и sessionStorage.
Date, getHours и getDay, Intl.DateTimeFormat, toLocaleString и Intl.NumberFormat для цен.
Math.random, Math.floor, случайный элемент массива, Math.min, Math.max и Math.abs.
import и export, script type=module, defer, отладка через debugger и точки остановки.
Собираем всё: задачи с сервера, отметка «выполнено» с сохранением, добавление новой задачи и живой поиск.
Семь примитивов и объекты, передача по значению и по ссылке, приведение типов, Object.is и SameValueZero.
Всплытие, временная мёртвая зона, "use strict", автоматическая точка с запятой, пустая инструкция, метки, with и catch без параметра.
Унарные + и −, побитовые & | ^ ~ << >> >>>, составное присваивание, логическое присваивание, void, запятая, группировка и instanceof.
Системы счисления 0x 0o 0b, разделители 1_000, BigInt 123n, экспонента 1e3, экранирование \u{…}, литерал регулярки, дырки в массиве, теговые шаблоны, вычисляемые ключи, методы и аксессоры в объектах.
Поля класса, приватные #поля и методы, static-поля и методы, статический блок static {}, new.target и наследование от встроенных.
Протокол итераторов и Symbol.iterator, генераторы function*, yield, yield* и методы next, return, throw.
Асинхронные генераторы async function*, for await…of, протокол асинхронных итераторов, Symbol.asyncIterator и Array.fromAsync.
export default, import * as, динамический import(), import.meta и await на верхнем уровне модуля.
Цикл событий, очередь задач и микрозадач, порядок выполнения промисов и таймеров, сборка мусора.
Цепочка прототипов, Object.create, Object.getPrototypeOf, Object.setPrototypeOf и isPrototypeOf.
Object.hasOwn, hasOwnProperty, propertyIsEnumerable, getOwnPropertyNames, getOwnPropertySymbols, Object.assign и Object.groupBy.
Object.defineProperty, defineProperties, getOwnPropertyDescriptor и getOwnPropertyDescriptors: writable, enumerable, configurable, get и set.
Object.freeze и isFrozen, Object.seal и isSealed, Object.preventExtensions и isExtensible.
toString, toLocaleString и valueOf у Object, обёртки Boolean, Symbol.toPrimitive и Symbol.toStringTag.
call, apply и bind, свойства length и name, toString у функций и потеря this.
globalThis, Infinity, isFinite, isNaN, eval и кодирование адресов encodeURI, encodeURIComponent, decodeURI, decodeURIComponent.
at, charAt, charCodeAt, codePointAt, String.fromCharCode, String.fromCodePoint и почему эмодзи — это два символа.
indexOf, lastIndexOf, startsWith, endsWith, search, match и matchAll.
substring, concat, repeat, padStart, padEnd, trimStart, trimEnd, toLocaleUpperCase, toLocaleLowerCase, toString и valueOf.
normalize, isWellFormed, toWellFormed и localeCompare для сортировки по алфавиту.
Number.MAX_SAFE_INTEGER, MIN_SAFE_INTEGER, MAX_VALUE, MIN_VALUE, EPSILON, бесконечности, Number.NaN и проверки isInteger, isSafeInteger, isFinite.
toString с основанием, toPrecision, toExponential, toLocaleString и valueOf у чисел.
Тип BigInt, конструктор BigInt(), операции, BigInt.asIntN, asUintN, toString, toLocaleString и valueOf.
Math.trunc, Math.sign, Math.pow, Math.sqrt, Math.cbrt, Math.hypot, Math.exp, Math.expm1, Math.log, Math.log2, Math.log10, Math.log1p и константы E, PI, SQRT2, SQRT1_2, LN2, LN10, LOG2E, LOG10E.
Math.sin, cos, tan, asin, acos, atan, atan2, гиперболические sinh, cosh, tanh, asinh, acosh, atanh, а также clz32, imul, fround и f16round.
Array.from, Array.of, Array.isArray, свойство length и его запись, fill и copyWithin.
at, lastIndexOf, findLast, findLastIndex и reduceRight.
flat, flatMap, toReversed, toSpliced, with, keys, values, entries, toString и toLocaleString.
Iterator.from и ленивые методы map, filter, take, drop, flatMap, reduce, toArray, forEach, some, every, find у итераторов.
new Map, set, get, has, delete, clear, size, keys, values, entries, forEach и Map.groupBy.
new Set, add, has, delete, clear, size, keys, values, entries и forEach.
union, intersection, difference, symmetricDifference, isSubsetOf, isSupersetOf и isDisjointFrom.
WeakMap, WeakSet, WeakRef и FinalizationRegistry: коллекции, которые не мешают сборщику мусора.
RegExp и литерал, test, exec и lastIndex, классы символов, квантификаторы, якоря, source и toString.
Флаги g, i, m, s, u, v, y, d и свойства global, ignoreCase, multiline, dotAll, unicode, unicodeSets, sticky, hasIndices и flags.
Группы ( ), именованные (?<name>), обратные ссылки, lookahead и lookbehind, замены с $1 и функцией, RegExp.escape и символы Symbol.match, matchAll, replace, search, split.
Symbol(), description, toString, valueOf, глобальный реестр Symbol.for и Symbol.keyFor.
Symbol.hasInstance, Symbol.isConcatSpreadable, Symbol.species и Symbol.unscopables: как настроить поведение встроенных операций.
new Proxy с ловушками get, set, has, deleteProperty, apply, construct и Proxy.revocable.
Reflect.get, set, has, deleteProperty, ownKeys, defineProperty, getOwnPropertyDescriptor, getPrototypeOf, setPrototypeOf, isExtensible, preventExtensions, apply и construct.
Error, message, name, cause, toString, Error.isError и все встроенные виды: RangeError, URIError, EvalError, AggregateError, свои классы ошибок.
Объявления using и await using, Symbol.dispose и Symbol.asyncDispose, DisposableStack, AsyncDisposableStack и SuppressedError.
Promise.resolve, Promise.reject, Promise.allSettled, Promise.any, Promise.race, Promise.try и Promise.withResolvers.
Функции replacer и reviver, отступы space, метод toJSON, JSON.rawJSON и JSON.isRawJSON.
Date.now, Date.parse, Date.UTC, getTime, setTime, valueOf, getTimezoneOffset, getUTCDay и разница между местным временем и UTC.
Чтение и запись года, месяца, дня, часов, минут, секунд и миллисекунд — в местном времени и в UTC.
toISOString, toJSON, toUTCString, toString, toDateString, toTimeString, toLocaleString, toLocaleDateString и toLocaleTimeString.
Intl.NumberFormat formatToParts, formatRange, formatRangeToParts; Intl.PluralRules select и selectRange; resolvedOptions и supportedLocalesOf у всех служб Intl.
Intl.DateTimeFormat formatToParts, formatRange, formatRangeToParts; Intl.RelativeTimeFormat; Intl.DurationFormat.
Intl.ListFormat, Intl.DisplayNames, Intl.Collator, Intl.Segmenter, Intl.getCanonicalLocales и Intl.supportedValuesOf.
Intl.Locale и его свойства: language, region, script, baseName, calendar, collation, hourCycle, caseFirst, numeric, numberingSystem, firstDayOfWeek, maximize, minimize, toString и сведения getCalendars, getCollations, getHourCycles, getNumberingSystems, getTimeZones, getTextInfo, getWeekInfo.
ArrayBuffer, byteLength, slice, ArrayBuffer.isView, изменяемые буферы resizable, maxByteLength, resize и передача transfer, transferToFixedLength, detached.
Int8Array, Uint8Array, Uint8ClampedArray, Int16Array, Uint16Array, Int32Array, Uint32Array, Float16Array, Float32Array, Float64Array, BigInt64Array, BigUint64Array, BYTES_PER_ELEMENT, from, of, buffer, byteOffset, set и subarray.
У типизированных массивов есть почти все методы обычных: at, includes, indexOf, lastIndexOf, find, findIndex, findLast, findLastIndex, every, some, forEach, map, filter, reduce, reduceRight, join, sort, reverse, fill, copyWithin, slice, keys, values, entries, toReversed, toSorted, with, toString и toLocaleString.
DataView, buffer, byteLength, byteOffset и методы get и set для Int8, Uint8, Int16, Uint16, Int32, Uint32, Float16, Float32, Float64, BigInt64 и BigUint64 с порядком байтов.
SharedArrayBuffer, grow, growable, maxByteLength, byteLength, slice и Atomics: load, store, add, sub, and, or, xor, exchange, compareExchange, isLockFree, wait, waitAsync, notify, pause.
HTML-методы строк anchor, big, blink, bold, fixed, fontcolor, fontsize, italics, link, small, strike, sub, sup; substr, trimLeft, trimRight; getYear, setYear и toGMTString у дат.
__proto__, __defineGetter__, __defineSetter__, __lookupGetter__, __lookupSetter__, RegExp.prototype.compile, arguments и caller у функций.