Front-end-Job-Interview-Questions

Ответы на вопросы на должность Frontend разработчика.


Project maintained by FedorovAlexander Hosted on GitHub Pages — Theme by mattgraham

В чём разница между feature detection (определение возможностей), feature inference (предположение возможностей) и анализом строки user-agent?

Feature detection (определение возможностей)

Определение возможностей браузера заключается в определении, поддерживает ли браузер определенный блок кода — и если нет, то будет выполняться другой код, так что браузер всегда сможет обеспечить работоспособность и предотвратить сбои/ошибки в некоторых браузерах. Например:

if ('geolocation' in navigator) {
	// Можно использовать navigator.geolocation
} else {
	// Обработка отсутствия возможности
}

Feature inference (предположение возможностей)

Предположение возможностей проверяет на наличие определённых возможностей, как и предыдущий подход, но использует другую функцию, которая предполагает, что определённая возможность уже существует, например:

if (document.getElementsByTagName) {
	element = document.getElementById(id);
}

Этот подход не рекомендуеся. Первый подход более надёжен.

Строка User Agent

Это строка, сообщаемая браузером, которая позволяет узлам сетевого протокола определить тип приложения, операционную систему, поставщика программного обеспечения или версию программного обеспечения пользователя, от которого исходит запрос. Доступ к ней можно получить через navigator.userAgent. Тем не менее строка User Agent сложна для обработки и может быть подделана. Например, браузер Chrome идентифицируется как Chrome и как Safari, нужно проверить на наличие строки Safari и отсутствие строки Chrome. Следует избегать этот метод.


Предыдущий вопрос | Следующий вопрос