Подставляй значения и станет понятнее
var array = [1,2,3,4,5,6,7,8];
for (var i = 0; i < 4 /*(8 / 2)*/; i++) {
array[0] = [array[0],array[array.length - 0 - 1]];
array[array.length - 0 - 1] = array[0][0];
array[0] = array[0][1];
}
// Следующая итерация i = 1, i < 4 -> да
array[1] = [array[1],array[array.length - 2]];
array[array.length - 2] = array[1]0];
array[1] = array[1][1];
// Следующая итерация i = 2, i < 4 -> да
array[2] = [array[2],array[array.length - 3]];
array[array.length - 3] = array[2]0];
array[2] = array[2][1];
// Следующая итерация i = 3, i < 4 -> да
array[3] = [array[3],array[array.length - 4]];
array[array.length - 4] = array[3]0];
array[3] = array[3][1];
// Следующая итерация i = 4, i < 4 -> нет, выходим из цикла
document.write(array);