var arr = [1,2,3,4,5,6,7,8]
var i = 3
var j = 4
console.log(arr); // [1,2,3,4,5,6,7,8]
[arr[i], arr[j]] = [arr[j++], arr[i--]];
console.log(arr); // [1,2,5,4,5,4,7,8]
// #1
// arr[j++]
// j++ вернет 4
// arr[4] вернет 5
// [arr[i], arr[j]] = [5, arr[i--]]
// #2
// arr[i--]
// i-- вернет 3
// arr[3] вернет 4
// [arr[i], arr[j]] = [5, 4]
// #3
// arr[i]
// i вернет 2
// [arr[2], arr[j]] = [5, 4]
// #4
// arr[j]
// j вернет 5
// [arr[2], arr[5]] = [5, 4]
// #5
// выполняем деструктуризацию
// #5.1
// console.log(arr[2]); // 3
// arr[2] = 5
// console.log(arr[2]); // 5
// #5.2
// console.log(arr[5]); // 6
// arr[5] = 4
// console.log(arr[5]); // 4
// #6
// в результате деструктуризации изменили исходный массив:
// [ 1, 2, 5, 4, 5, 4, 7, 8 ]