> Какие есть стандарты JavaScript (JavaScript)

Уровень: senior · Роль: frontend · Категория: Технические вопросы

Компании: EdenAI

Стек: JavaScript

> Пример ответа

Короткий ответ

Основные стандарты JavaScript - это ECMAScript (ES), спецификация которого развивается версиями: ES5 (2009), ES6/ES2015, и далее ежегодные релизы. Также существуют стандарты веб-платформы: DOM (Document Object Model), BOM (Browser Object Model), Web APIs (Fetch, WebSocket, Service Workers) и спецификации WHATWG (HTML Living Standard). Для серверного JavaScript ключевой стандарт - Node.js, основанный на V8 и частично на libuv.

Подробное объяснение

JavaScript стандартизируется организацией Ecma International через комитет TC39. Основной стандарт - ECMAScript, который определяет синтаксис, типы, операторы, объекты и алгоритмы. Версии: ES5 (полная поддержка во всех браузерах), ES2015 (классы, модули, стрелочные функции, promises), ES2016+ (async/await, optional chaining, nullish coalescing). Каждый год выходит новая версия.

Параллельно существуют стандарты веб-платформы:

  • DOM (Document Object Model) - спецификация W3C для работы с HTML/XML документами
  • BOM (Browser Object Model) - неформальный стандарт для работы с браузером (window, navigator, location)
  • Web APIs - Fetch API, WebSocket, Service Workers, Web Workers, Canvas, WebGL и другие
  • HTML Living Standard от WHATWG - определяет поведение браузера

Для серверного JavaScript:

  • Node.js - реализация на базе V8 с собственным API (fs, http, path)
  • Deno - альтернатива с поддержкой Web APIs
  • Bun - новый runtime с собственным стандартом

Также существуют спецификации для модулей: CommonJS (используется в Node.js) и ES Modules (стандарт ECMAScript).

На практике

Senior-разработчик должен понимать, что:

  • Код должен быть совместим с целевыми версиями ECMAScript (через транспиляцию Babel или указание target в TypeScript)
  • Использование новых фич (optional chaining, nullish coalescing) требует проверки поддержки в браузерах
  • DOM API может отличаться между браузерами (особенно старые версии IE)
  • Для серверного кода нужно учитывать различия между Node.js, Deno и Bun
  • Web Workers и Service Workers имеют свои ограничения (отсутствие доступа к DOM)

Пример кода

JAVASCRIPT
// Проверка поддержки ECMAScript фичи
const hasOptionalChaining = () => {
try {
eval('({})?.a');
return true;
} catch {
return false;
}
};
// Использование с проверкой
if (hasOptionalChaining()) {
const user = response?.data?.user;
} else {
const user = response && response.data && response.data.user;
}
// Работа с DOM (стандарт W3C)
const element = document.querySelector('.app');
element.addEventListener('click', handleClick);
// Web API (Fetch)
const data = await fetch('/api/users').then(res => res.json());
// Node.js специфичный код
const fs = require('fs');
const content = fs.readFileSync('./config.json', 'utf-8');

Как отвечать на собеседовании

Начни с ECMAScript как основного стандарта, упомяни ключевые версии и их нововведения. Затем перейди к веб-стандартам (DOM, Web APIs) и серверным runtime. Покажи понимание различий между спецификациями и их практическое применение. Приведи пример, когда нужно учитывать совместимость (например, optional chaining в старых браузерах). Заверши упоминанием современных тенденций (Deno, Bun) и важности транспиляции.

Что проверяет интервьюер

  • Понимание разницы между ECMAScript и JavaScript
  • Знание истории версий и ключевых нововведений
  • Осведомленность о веб-стандартах (DOM, Web APIs)
  • Понимание различий между серверными runtime
  • Умение применять знания на практике (транспиляция, полифиллы)
  • Способность оценивать совместимость кода с разными средами

Типичные ошибки

  • Путать ECMAScript и JavaScript как одно и то же
  • Не знать про WHATWG и HTML Living Standard
  • Считать, что все браузеры одинаково поддерживают DOM API
  • Игнорировать различия между CommonJS и ES Modules
  • Не учитывать, что Web Workers не имеют доступа к DOM
  • Думать, что Node.js полностью соответствует ECMAScript (он использует V8, но добавляет свои API)

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью