let prev = 1, curr = 1;
let sum = 0;
while (curr <= 4000000) {
if (curr % 2 == 0) sum += curr;
[prev, curr] = [curr, prev + curr];
}
console.log(sum); // 4613732
________________________
[prev, curr] = [curr, prev + curr];
Называется деструктурирующее присваивание. Это то же самое, что
let tmp = curr; // временно сохранить текущее значение
curr = prev + curr; // суммировать предыдущее к текущему
prev = tmp; // а предыдущее станет равным старому curr.
________
Еще, запиши
let prev = 1, curr = 1;
while (curr <= 4000000) {
console.log( curr );
[prev, curr] = [curr, prev + curr];
}
Оно очень быстро растет, и можно заметить, что каждый третий элемент - четный. Может есть какая-нибудь красивая формула нахождения такой суммы одной строчкой)