Спецификация и справочники #
ECMAScript — официальный стандарт языка JavaScript: синтаксис, типы, встроенные объекты (Array, Promise, Map). Всё остальное — DOM, fetch, localStorage — описывают отдельные спецификации Web-платформы и документация сред выполнения.
ECMAScript и TC39 #
Стандарт развивает комитет TC39 (Ecma International). Версии с ES2015 выходят ежегодно: ES2020, ES2024 и т.д. Номер «ES6» и «ES2015» — одно и то же обновление.
Спецификация ECMA-262 написана для implementers: формулировки точные, но сухие. Пример из практики — проверить, как именно работает Array.prototype.sort:
const ids = [10, 2, 1]
ids.sort() // [1, 10, 2] — лексикографическая сортировка строк!
ids.sort((a, b) => a - b) // [1, 2, 10] — числовая
Стандарт задаёт алгоритм сортировки и правила сравнения; учебник объясняет, зачем передавать компаратор — спецификация описывает что происходит по шагам.
Для повседневной разработки полный текст ECMA-262 нужен редко: при спорных edge cases, при работе над двиком или при изучении новой фичи до появления удобных статей.
Что входит в язык, а что — в платформу #
| Область | Примеры | Где описано |
|---|---|---|
| Язык ES | let, классы, промисы, JSON.parse | ECMA-262 |
| Браузер | document, fetch, localStorage | WHATWG, W3C, MDN |
| Node.js | node:fs, node:http | Документация Node |
// язык ES — одинаков в браузере и Node
const data = JSON.parse('{"ok":true}')
// платформа браузера — только в вкладке
document.title = 'JSFlow'
// платформа Node — только вне браузера
// import fs from 'node:fs'
Путаница «это JavaScript или нет» обычно означает: «это ECMAScript или Web API?». На собеседованиях и в коде полезно разделять эти слои.
Зачем нужны справочники (и MDN) #
Справочник — алфавитный или тематический каталог API с синтаксисом, параметрами и примерами. MDN Web Docs — крупнейший открытый справочник по JavaScript и веб-платформе на нескольких языках, включая русский.
MDN не заменяет учебник построчным курсом. Его роль другая:
- Уточнить сигнатуру — сколько аргументов у
replaceAll, что возвращаетfetch. - Проверить совместимость — поддерживает ли целевой браузер метод.
- Найти связанные API — от
RequestкHeaders, отStorageк событиям.
JSFlow выстраивает темы от простого к сложному с связным повествованием. MDN удобен, когда вы уже знаете что ищете, и нужна точная карточка метода.
Другие источники: caniuse.com для поддержки в браузерах, node.dev для Node, release notes TC39 для новых proposal.
Как читать документацию эффективно #
- Сначала концепция в курсе, затем карточка API в справочнике — так проще удержать контекст.
- Смотрите раздел «Примеры» и edge cases, не только первую строку описания.
- Различайте «устарело» и «экспериментально» — в MDN такие пометки есть у устаревших API.
- Проверяйте среду —
window.alertв справочнике браузера не поможет в скрипте Node.
// справочник подскажет: второй аргумент — locale или options
'ёжик'.localeCompare('язык', 'ru') // -1
Спецификация vs учебник vs блог #
| Формат | Сильная сторона | Слабая сторона |
|---|---|---|
| ECMA-262 | Абсолютная точность | Сложный язык, мало примеров |
| Учебник (JSFlow) | Путь обучения, связность | Не покрывает каждый метод |
| MDN / Node docs | Полнота API | Мало «истории» и мотивации |
| Статьи и доклады | Контекст индустрии | Могут устареть |
Оптимальная связка: пройти тему в JSFlow, закрепить практикой, при необходимости открыть MDN или раздел Node для деталей.
Итог #
- ECMAScript стандартизирует язык; DOM,
fetchи Node API — отдельные слои. - TC39 выпускает ежегодные редакции ES; полная спецификация нужна для глубокой верификации.
- MDN и аналоги — справочники по API, а не замена структурированному курсу.
- JSFlow даёт маршрут обучения; справочник — точечные ответы по синтаксису и совместимости.