В консоли будет 3 1. Сначала вычисляется массив справа [y, x] со старыми значениями, затем деструктуризация присваивает их переменным слева.
Перестановка значений переменных с помощью деструктурирующего присваивания
В консоли будет 3 1. Сначала вычисляется массив справа [y, x] со старыми значениями, затем деструктуризация присваивает их переменным слева.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Определите, какой вывод появится в консоли после выполнения следующего JavaScript‑кода, использующего деструктуризацию для обмена значениями переменных.
let x = 1;
let y = 3;
[x, y] = [y, x];
console.log(x, y);
Ответ
В консоли будет 3 1. Сначала вычисляется массив справа [y, x] со старыми значениями, затем деструктуризация присваивает их переменным слева.
Правая часть становится [3, 1] до изменения любой переменной. После присваивания x получает 3, y получает 1, поэтому временная именованная переменная не нужна. Оба связывания должны разрешать присваивание, как let в примере; попытка заменить значение const привела бы к ошибке.