Влияние 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
Лучше во избежание таких трудностей всегда заканчивать инструкции точкой с запятой.