Влияние console.log на Деструктуризация без объявления при вычислении Фибоначчи на Node,js

Можете объяснить как?! console.log может влиять на математический алгоритм?

Предисловие: на Pythone Фибоначчи выглядит так:

f1, f2 =  1 , 1
print(f1)
while f2 < 100:
    print(f2)
    f1, f2 = f2, f1+f2 

Я захотел повторить этот алгоритм в питоновском стиле на NodeJS (у меня версия v10.16.2 под Windows), используя деструктуризацию без присвоения, вот рабочий код:

var [f1,f2] = [1,1]
while (f2 < 100) {
  console.log(f2)
  console.log('!');/* БЕЗ этого console.log вываливается с ошибкой 
                      [f1,f2] = [f2, f1+f2]
                              ^
                      TypeError: Cannot set property '1' of undefined
                      С console.log - работает 
                   */
  [f1,f2] = [f2, f1+f2]
}

Ответы (1 шт):

Автор решения: vsemozhebuty

Дело в точке с запятой после console.log('!'). Без неё ваш код парсится как console.log(f2)[f1,f2] = [f2, f1+f2], то есть как undefined[1] = [f2, f1+f2].

См. https://javascript.info/structure#semicolon

Лучше во избежание таких трудностей всегда заканчивать инструкции точкой с запятой.

→ Ссылка