На примере выпадающего меню
При условии, что разметка выглядит так:
<div class="popup-menu">
<button class="popup-menu__button"></button>
<ul class="popup-menu__list hide-popup">
...
</ul>
</div>
JS:
const popupWrapper = document.querySelector('.popup-menu');
const popupMenu = document.querySelector('.popup-menu__list');
// Выполняем функцию когда юзер кликает в любом месте
document.addEventListener('click', hidePopup);
function hidePopup(el) {
// Проверяем, есть ли внутри того по чему кликнули попап меню и кнопка
let targetInside = popupWrapper.contains(el.target);
// Если нет, то прячем меню
if (!targetInside) {
popupMenu.classList.add('hide-popup');
}
}