Полезные знания для вебмастера

Javascript
приоритет операторов в Javascript
mediaDevices.getUserMedia()
truthy и falsy значения
CSS
свойство backdrop-filter

Метод navigator.mediaDevices.getUserMedia()

navigator.mediaDevices.getUserMedia() - метод задаёт пользователю запрос на разрешение использовать устройство ввода мультимедиа, которое будет давать MediaStream с дорожками.
Этот стрим может включать видеодорожку (например, с камеры или устройства расшаривания экрана), аудиодорожку, и возможно, дорожки других типов.
Возвращает промис, который успешно завершается с объектом типа MediaStream.
Если пользователь запрещает доступ или медиа недоступно, то промис отклоняется с исключением DOMException с ошибками вроде NotAllowedError, NotFoundError и др.
Промис может вообще не завершиться, если, например, пользователь проигнорирует запрос.

var promise = navigator.mediaDevices.getUserMedia(constraints);
constraints - объект параметров типа MediaStreamConstraints, содержит два свойства - audio и video. Обязательно хотя бы один параметр, т.е. можно указать, например, лишь video.
audio и video могут быть булевыми, а могут быть объектами типа MediaTrackConstraints, в которых свои свойства-параметры.
Без правильных параметров камера может дать видеопоток низкого разрешения, например фронтальная камера смартфона даст 480х640.
Примеры этих объектов constraints:
{ audio: true, video: true }

{
  audio: true,
  video: { width: 1280, height: 720 }
}

{
  audio: true,
  video: {
    width: { min: 1024, ideal: 1280, max: 1920 },
    height: { min: 576, ideal: 720, max: 1080 }
  }
}

{ audio: true, video: { facingMode: "user" } }