Перейти к основному содержимому

JavaScript — чек-лист

Разработчику Архитектору
Загрузка вопросов…

Чек-лист самопроверки

Пройдите блоки по порядку. Если на вопрос не отвечаете за минуту — откройте статью из ссылки.


Язык и основы

  1. Что такое JavaScript и для чего он изначально создавался?
  2. Как JavaScript взаимодействует с HTML и CSS?
  3. В чём разница между var, let и const?
  4. Что такое область видимости?
  5. Как устроена система типов в JavaScript?
  6. Какие примитивные типы данных существуют?
  7. Что такое falsy-значения?
  8. Чем == отличается от ===?
  9. Что такое замыкание?
  10. Event loop, call stack, очередь задач?
  11. Что такое hoisting?
  12. Function declaration, expression, arrow?
  13. Что такое IIFE?
  14. Как передаются аргументы в функции?
  15. Что такое this?
  16. call, apply, bind?
  17. Прототип и цепочка прототипов?
  18. Создание объектов: литерал, класс?
  19. Что принесло ES6?
  20. Классы в JavaScript?
  21. Деструктуризация?
  22. Шаблонные строки?
  23. Spread и rest?
  24. Массивы и основные методы?
  25. map, filter, reduce, forEach?
  26. Зачем асинхронность?
  27. Коллбэки и их минусы?
  28. Promise?
  29. async/await?
  30. Микро- и макрозадачи, queueMicrotask и порядок выполнения?
  31. Ошибки в sync и async коде?
  32. Модули import/export и CommonJS?
  33. JSON?
  34. Даты?
  35. Регулярные выражения? (Регулярные выражения в JavaScript)
  36. Symbol, итераторы, генераторы?
  37. Proxy и Reflect?
  38. strict mode?

Браузер, DOM и сеть

  1. DOM — выбор, изменение, события?
  2. Регистрация обработчиков?
  3. Делегирование событий?
  4. fetch?
  5. CORS? (Express — middleware, маршруты и ошибки)
  6. AbortController?
  7. cookies, sessionStorage, localStorage, IndexedDB и где уместен Clear-Site-Data?
  8. Как работает Notification API и Notification.requestPermission? (Нативные уведомления в браузере — Notification API)
  9. IntersectionObserver, ResizeObserver?
  10. DOM и BOM, location, history?
  11. Selection, Range и выделение в полях ввода? (Работа с HTML в JavaScript)
  12. navigator.geolocation — ошибки, опции, watchPosition? (Объектная модель браузера (BOM))
  13. <canvas> и 2D-контекст; учебные скетчи p5.js? (Canvas 2D — программируемая графика в браузере, Lab 1114, Lab 1119 SVG)
  14. Чтение файла до отправки?
  15. Custom Elements, Shadow DOM?
  16. Drag-and-drop?
  17. DevTools?
  18. ESLint, Prettier?

API и расширение возможностей

  1. В чём разница между ECMAScript API, Web API и API среды (Node.js)?
  2. Как безопасно подключать внешний REST API в браузерном приложении?
  3. Почему ключи и токены нельзя хранить в клиентском JavaScript?
  4. Как проверять response.ok и обрабатывать HTTP-ошибки у fetch?
  5. Когда нужен AbortController и таймаут запроса?
  6. Чем localStorage отличается от IndexedDB в сценариях кеширования API-ответов?
  7. Когда использовать navigator.share, а когда navigator.clipboard.writeText?
  8. Как корректно запрашивать разрешение для Notification API?
  9. Как расширять проект через npm-пакеты и не перегружать фронтенд зависимостями?
  10. Как организовать слой api/* в проекте, чтобы запросы не были размазаны по компонентам?

Node.js и Express

  1. Чем Node отличается от JS в браузере? (Node.js - серверный JavaScript)
  2. package.json, npm install, lock-файл?
  3. Зачем "type": "module"?
  4. HTTP-сервер на Express? (Первая программа на Node.js)
  5. Зачем express.json()?
  6. Middleware и next()? (Express — middleware, маршруты и ошибки)
  7. Router?
  8. Коды 200, 201, 400, 404, 500?
  9. Ошибки в async route?
  10. CORS и прокси для SPA? (Fullstack на JavaScript — API и фронтенд)

React, Vue, Angular, Next

  1. Библиотека и фреймворк?
  2. Компонент и props в React? (Первая программа на React)
  3. useState, useEffect?
  4. Как заблокировать кнопку на время await? (Кнопка с загрузкой — React, Promise и поток обновлений)
  5. Virtual DOM?
  6. Реактивность во Vue? (Vue.js)
  7. ref, v-model, onMounted? (Первая программа на Vue.js)
  8. <script setup>, computed?
  9. Angular и TypeScript? (Первая программа на Angular)
  10. ngModel, reactive forms?
  11. RxJS Observable, async pipe?
  12. Фронт и Node API? (Fullstack на JavaScript — API и фронтенд)
  13. Next.js, SSR/SSG? (Next.js)
  14. Server и Client Component? (Первая программа на Next.js)
  15. Зачем Link в Next?
  16. React, Vue или Angular для нового проекта?

TypeScript, сборка, безопасность

  1. Зачем TypeScript? (TypeScript)
  2. interface и type?
  3. Vite/Webpack? (Экосистема JavaScript - инструменты и фреймворки)
  4. XSS на фронте?
  5. Секреты API в клиенте?
  6. helmet, rate-limit?
  7. Dev и production?

Десктоп

  1. Electron main / renderer / preload? (Electron)
  2. Зачем nodeIntegration: false?
  3. Electron + React? (Первая программа Electron с React)

Как пользоваться

intro · Итоги


Основа по протоколу

Базовый разбор HTTP и HTTPS находится в отдельной статье — HTTP как основа веб-интеграций.