JavaScript — чек-лист
Чек-лист самопроверки
Пройдите блоки по порядку. Если на вопрос не отвечаете за минуту — откройте статью из ссылки.
Язык и основы
- Что такое JavaScript и для чего он изначально создавался?
- Как JavaScript взаимодействует с HTML и CSS?
- В чём разница между
var,letиconst? - Что такое область видимости?
- Как устроена система типов в JavaScript?
- Какие примитивные типы данных существуют?
- Что такое falsy-значения?
- Чем
==отличается от===? - Что такое замыкание?
- Event loop, call stack, очередь задач?
- Что такое hoisting?
- Function declaration, expression, arrow?
- Что такое IIFE?
- Как передаются аргументы в функции?
- Что такое
this? call,apply,bind?- Прототип и цепочка прототипов?
- Создание объектов: литерал, класс?
- Что принесло ES6?
- Классы в JavaScript?
- Деструктуризация?
- Шаблонные строки?
- Spread и rest?
- Массивы и основные методы?
map,filter,reduce,forEach?- Зачем асинхронность?
- Коллбэки и их минусы?
- Promise?
async/await?- Микро- и макрозадачи,
queueMicrotaskи порядок выполнения? - Ошибки в sync и async коде?
- Модули
import/exportи CommonJS? - JSON?
- Даты?
- Регулярные выражения? (Регулярные выражения в JavaScript)
Symbol, итераторы, генераторы?ProxyиReflect?strict mode?
Браузер, DOM и сеть
- DOM — выбор, изменение, события?
- Регистрация обработчиков?
- Делегирование событий?
fetch?- CORS? (Express — middleware, маршруты и ошибки)
AbortController?- cookies,
sessionStorage,localStorage, IndexedDB и где уместенClear-Site-Data? - Как работает Notification API и
Notification.requestPermission? (Нативные уведомления в браузере — Notification API) IntersectionObserver,ResizeObserver?- DOM и BOM,
location,history? Selection,Rangeи выделение в полях ввода? (Работа с HTML в JavaScript)navigator.geolocation— ошибки, опции,watchPosition? (Объектная модель браузера (BOM))<canvas>и 2D-контекст; учебные скетчи p5.js? (Canvas 2D — программируемая графика в браузере, Lab 1114, Lab 1119 SVG)- Чтение файла до отправки?
- Custom Elements, Shadow DOM?
- Drag-and-drop?
- DevTools?
- ESLint, Prettier?
API и расширение возможностей
- В чём разница между ECMAScript API, Web API и API среды (Node.js)?
- Как безопасно подключать внешний REST API в браузерном приложении?
- Почему ключи и токены нельзя хранить в клиентском JavaScript?
- Как проверять
response.okи обрабатывать HTTP-ошибки уfetch? - Когда нужен
AbortControllerи таймаут запроса? - Чем
localStorageотличается отIndexedDBв сценариях кеширования API-ответов? - Когда использовать
navigator.share, а когдаnavigator.clipboard.writeText? - Как корректно запрашивать разрешение для
Notification API? - Как расширять проект через npm-пакеты и не перегружать фронтенд зависимостями?
- Как организовать слой
api/*в проекте, чтобы запросы не были размазаны по компонентам?
Node.js и Express
- Чем Node отличается от JS в браузере? (Node.js - серверный JavaScript)
package.json,npm install, lock-файл?- Зачем
"type": "module"? - HTTP-сервер на Express? (Первая программа на Node.js)
- Зачем
express.json()? - Middleware и
next()? (Express — middleware, маршруты и ошибки) Router?- Коды 200, 201, 400, 404, 500?
- Ошибки в async route?
- CORS и прокси для SPA? (Fullstack на JavaScript — API и фронтенд)
React, Vue, Angular, Next
- Библиотека и фреймворк?
- Компонент и props в React? (Первая программа на React)
useState,useEffect?- Как заблокировать кнопку на время
await? (Кнопка с загрузкой — React, Promise и поток обновлений) - Virtual DOM?
- Реактивность во Vue? (Vue.js)
ref,v-model,onMounted? (Первая программа на Vue.js)<script setup>,computed?- Angular и TypeScript? (Первая программа на Angular)
ngModel, reactive forms?- RxJS
Observable,asyncpipe? - Фронт и Node API? (Fullstack на JavaScript — API и фронтенд)
- Next.js, SSR/SSG? (Next.js)
- Server и Client Component? (Первая программа на Next.js)
- Зачем
Linkв Next? - React, Vue или Angular для нового проекта?
TypeScript, сборка, безопасность
- Зачем TypeScript? (TypeScript)
interfaceиtype?- Vite/Webpack? (Экосистема JavaScript - инструменты и фреймворки)
- XSS на фронте?
- Секреты API в клиенте?
helmet, rate-limit?- Dev и production?
Десктоп
- Electron main / renderer / preload? (Electron)
- Зачем
nodeIntegration: false? - Electron + React? (Первая программа Electron с React)
Как пользоваться
- Мало ответов по языку — Основы JavaScript, одна "первая программа".
- API/интеграции слабые — блок API (57–66).
- Сервер слабый — блок Node (67–76).
- UI слабый — 272, 282 или 292.
- API и фронт не сходятся — Fullstack на JavaScript — API и фронтенд.
Базовый разбор HTTP и HTTPS находится в отдельной статье — HTTP как основа веб-интеграций.