Ол
Ольга

Можно адекватную критику JS кода? Боковое выезжающее меню. Что можно улучшить? Как оптимизировать? Понятно ли написано?

Codepen.io/westerovs/pen/YzWJmoE?editors=1011

по нажатию на "тело" навигации - оно выезжает
по нажатию на любую другую область - заезжает.
Пока оно не выедет - блокируются случайные нажатия на элементы.
Пока оно заезжает - блокируются случайные нажатия на элементы.

ссылка на codepen: codepen.io/westerovs/pen/YzWJmoE?editors=1011

ЕЗ
Елена Зозулина

if (body.classList.contains('show-menu')) {
body.classList.remove('show-menu')
}

Заменить на body.classList.remove('show-menu') без if
Оно не выдает ошибку, если класса не было.
___

Во-первых

if (a) return
else if (b) return
else if (c) return

Бессмысленная конструкция, и заменяется на

if (a || b || c) return;

Во-вторых, e.target.className === 'nav__item' вот так не надо... в будущем, желание добавить новый класс по другим причинам, не должно ломать старый код. Такую проверку делают как минимум через регулярное выражение, а лучше через classList.contains

Вся проверка сокращается до:
if ([nav, navList].includes(e.target) || e.target.classList.contains("nav__item")) return;
___

«лучше использовать ооп» (с) del
Имхо, пока функций меньше десятка и больше точно не предвидится, функции вполне комфортно могут жить без объектов) ООП - способ управления большим кодом. Не обязательно пытаться везде пропихнуть.

Денис Федоров
Денис Федоров

Убрать имена на вроде nav, body ...из глобальной области видимости. Если кто то захочет использовать такое же имя в другом коде все сломается. Обычно это делают с помощью анонимной самовызывающейся функции
+function(){ ...код приложения ...}();
Такая же ситуация с отдельно висящими функциями лучше использовать ооп и сделать их свойствами какого либо объекта.

Так же не стоит изменять стилевые свойства из JS лучше создать отдельные классы CSS а в JS переключать эти классы. т. е. придерживаться правила "котлеты отдельно мухи отдельно".

Похожие вопросы
Подскажите книги про дзен буддизм. Желательно чтоб более менее понятно было написано. Ничего подобного еще не читал
Подскажите научную книгу по психологии, написанную, тем не менее, довольно ясно и понятно для непрофессионала.
Подскажите пожалуйста меню ля одностраничного и многостраничного сайта. Желательно написать код.
Где можно найти метод Гауса-Зейделя написанный понятно, менее научным языком?
Случайно написалось.. . Прочитайте и скажите, что думаете. Буду благодарна за адекватную критику!
Подскажите наиболее функциональный и бесплатный WYSIWYG редактор HTML кода, написанный на JS, jQuery или подобном.
Написать код на JavaScript понятным и легким способом
Что-то в голову не лезет каким образом лучше написать этот код, можно решение или подсказку?
Как лучше всего на js написать этот код?
Помогите оптимизировать код кнопки на javascript