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

9t29hxcu4fftzxzxwrr-qakimny.jpeg

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

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

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

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

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

Песочница:

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

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


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

giuuk336hg7py23mpxgezhp6lq8.png

477d7-b1_wprwavdqodw6p4xbz0.png

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

guc2yjfwys48cveekqwpjh7xuhs.jpeg

u6ksxy2arnn0r89cbzkgbsldwx0.jpeg

hnqmay0qipuw-mfwhttwjefkylc.jpeg

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


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

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

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

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

© Habrahabr.ru