Замыкания в JavaScript
Замыкание в JavaScript - это комбинация функции и лексического окружения, в котором она была определена. Это позволяет ей обращаться к переменным и функциям этого лексического окружения в дальнейшем.
В следующем примере мы определяем функцию makeCounter(), которая фактически является фабричной функцией. При вызове она возвращает дочернюю функцию, которая имеет доступ к лексическому окружению внешней функции, то-есть функции makeCounter(). Таким образом, возвращаемая функция запоминает переменную counter и в последующем изменяет ее значение.
👉 @frontendInterview
Замыкание в JavaScript - это комбинация функции и лексического окружения, в котором она была определена. Это позволяет ей обращаться к переменным и функциям этого лексического окружения в дальнейшем.
В следующем примере мы определяем функцию makeCounter(), которая фактически является фабричной функцией. При вызове она возвращает дочернюю функцию, которая имеет доступ к лексическому окружению внешней функции, то-есть функции makeCounter(). Таким образом, возвращаемая функция запоминает переменную counter и в последующем изменяет ее значение.
function makeCounter(initial = 0) {
let counter = initial;
return function() {
return counter += 1;
}
}
const counterA = makeCounter(0);
console.log(counterA()); // 1
console.log(counterA()); // 2
const counterB = makeCounter(100);
console.log(counterB()); // 101
console.log(counterB()); // 102
👉 @frontendInterview
👎3👍1
Как получить информацию о браузере пользователя?
Свойство window.navigator возвращает объект описания приложения (user agent), которое выполняет скрипт. В подавляющем большинстве случаев это приложение — браузер. Объект содержит свойства, описывающие браузер, и методы для выполнения действий.
Часто используемые свойства:
- userAgent возвращает строку, которая содержит название браузера.
- languages возвращает массив предпочитаемых языков в порядке предпочтительности. Первый в списке будет язык, который возвращает navigator.language.
👉 @frontendInterview
Свойство window.navigator возвращает объект описания приложения (user agent), которое выполняет скрипт. В подавляющем большинстве случаев это приложение — браузер. Объект содержит свойства, описывающие браузер, и методы для выполнения действий.
Часто используемые свойства:
- userAgent возвращает строку, которая содержит название браузера.
navigator.userAgent
// "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:93.0) Gecko/20100101 Firefox/93.0"
- language возвращает предпочитаемый язык интерфейса в виде языкового тега.- languages возвращает массив предпочитаемых языков в порядке предпочтительности. Первый в списке будет язык, который возвращает navigator.language.
navigator.language
// "ru"
navigator.languages
// ["ru", "en-US", "es-ES"]
- cookieEnabled возвращает true, если браузер пользователя поддерживает куки и они включены, false в противном случае.👉 @frontendInterview
👍1