Почему возникает ошибка при обмене переменных в JavaScript?

Столкнулся с проблемой при попытке поменять местами переменные после деструктуризации массива. Когда использую такой код:

let [x,y] = menu.items
console.log(x)
console.log(y)
let temp = [y,x]

let data = {
  products : ['banana','grape','potato'],
}

let [first,second] = data.products
[first,second] = [second,first]

Выдает ошибку:
script.js:62 Uncaught ReferenceError: Cannot access ‘first’ before initialization

Но если добавить точку с запятой в конце строки перед обменом значений, то все работает нормально:

let [x,y] = menu.items
console.log(x)
console.log(y)
let temp = [y,x]

let data = {
  products : ['banana','grape','potato'],
}

let [first,second] = data.products;
[first,second] = [second,first]

В чем может быть причина такого поведения?