habrahabr

JavaScript: 250+ практических вопросов (список + викторина + бонус)

  • пятница, 14 августа 2020 г. в 00:27:42
https://habr.com/ru/post/515028/
  • Разработка веб-сайтов
  • JavaScript
  • Программирование




Доброго времени суток, друзья!

Представляю вашему вниманию список из 250+ практических вопросов по JavaScript с подробными (насколько это возможно и уместно в контексте чеклиста) ответами, возможностью проверить свои знания с помощью викторины, состоящей из 30 случайных вопросов из списка, и бонусом в виде вопросов, разделенных на логические блоки (в разработке).

В действительности, на данный момент в приложении 193 вопроса. Работаю над продолжением (бонусом).

Посмотреть и установить приложение можно здесь (Netlify) и здесь (PWA Store).

Код приложения на GitHub.

Песочница:


Особенности приложения (на правах рекламы):

  • Приложение содержит самую большую на сегодняшний день коллекцию практических заданий в Рунете
  • Вопросы имеют разный уровень сложности и касаются всех аспектов работы JavaScript, включая самые последние возможности типа динамического импорта или оператора опциональной цепочки
  • Приложение представляет интерес как для опытных разработчиков, так и для тех, кто только начинается погружаться в удивительный мир веб-программирования
  • Формат приложение — один из лучших способов определения своего уровня мастерства и углубленного изучения языка
  • Приложение адаптировано под мобильные (является прогрессивным, что означает, что его можно установить на телефон или компьютер) и работает в офлайн-режиме (кэширование, сервис-воркер)
  • Список вопросов очень длинный, поэтому в приложении реализовано запоминание последнего изученного вопроса (Intersection Observer + локальное хранилище), что позволяет в любой момент сделать паузу, выйти из приложения, выпить кофе, посмотреть Netflix, прогуляться, зайти в приложение и продолжить с того места, на котором остановились
  • В приложении нет ничего лишнего: только JavaScript, только хардкор, т.е., я хотел сказать, практика

На десктопе приложение выглядит следующим образом:





А на смарфоне так:







Приложение основано на следующих репозиториях:


Большое спасибо авторам за проделанную работу.

Что касается кода приложения, то я старался писать его максимально понятным образом (это касается говорящих названий переменных и функций, отказа от использования сложных конструкций, включая тернарники и т.д.) как в целях отладки, так и в целях потенциального ознакомления с ним других разработчиков. Вместе с тем, я старался использовать самые последние, но при этом широко поддерживаемые фичи. В принципе, в коде нет ничего особенного. Про Intersection Observer можно почитать здесь.

Буду рад любым отзывам, замечаниям и предложениям. Как известно, не совершает ошибок лишь тот, кто ничего не делает, так что приношу извинения за возможные ошибки и опечатки (все-таки 5000+ строк кода, и это только исходники-вопросы).

Надеюсь, приложение вам понравится. Благодарю за внимание.