#js

window.addEventListener('beforeunload', sendRequestOnCloseTab, false);

function sendRequestOnCloseTab() {
    if (!navigator.sendBeacon) {
        return;
    }

    navigator.sendBeacon(
        '/api/method',
        JSON.stringify(
            {
                field: 'value'
            }
        )
    );
}

Отправка запроса с помощью Beacon API не ожидает ответа сервера, а поэтому не блокирует страницу.

Давайте разберёмся с массивами (объектами Array), какие у них есть методы и как ими пользоваться.

Как создать массив

let myArray = [];
// эквивалентно:
myArray = new Array();

Если мы не создавали массив, а получили переменную извне, то нужно проверить является ли она массивом.

А также иногда бывает полезно проверить переменную на существование проверив её тип, чтобы избежать ошибки вроде Uncaught ReferenceError: myArray is not defined:

if (
  typeof myArray === 'object' &&
  Array.isArray(myArray)
) {
  console.log(true);
}

Добавление элементов в массив

Заполнить массив можно при создании:

let myArray = [1, 2, 3];

Либо с помощью метода push: