Проверяет умение определять тип устройства пользователя для выбора адаптивного интерфейса или редиректа на мобильную версию.
Определение типа устройства — задача, которая кажется простой, но на практике полна подводных камней. Исторически разработчики смотрели на заголовок User-Agent, но сегодня это ненадёжно: браузеры маскируются, планшеты выдают себя за десктопы, а мобильные режимы в DevTools легко эмулируют любой UA.
const isMobile = window.matchMedia('(max-width: 768px)').matches;
const hasTouch = 'ontouchstart' in window || navigator.maxTouchPoints > 0;
const canHover = window.matchMedia('(hover: hover)').matches;
if (isMobile || (hasTouch && !canHover)) {
loadMobileUI();
} else {
loadDesktopUI();
}
// Реакция на поворот экрана
window.matchMedia('(max-width: 768px)')
.addEventListener('change', e => e.matches ? loadMobileUI() : loadDesktopUI());
Если нужен редирект на отдельный домен (например, m.example.com), на сервере смотрят User-Agent и заголовки Sec-CH-UA-Mobile из Client Hints. Но такой подход устаревает: современный стандарт — один адаптивный сайт.
Итог: для выбора версии интерфейса используй CSS media queries и matchMedia — они отражают реальные возможности устройства. User-Agent применяй только как вспомогательный сигнал для аналитики или серверного редиректа, но не как единственный критерий.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию