В вашем примере оба "a" и "b" являются переменными. Они определены вне рамок для l oop. По этой причине их значение может быть видоизменено и сохраняться в течение жизни в течение l oop.
ie
var a = 0;
for (var i = 0; i < 5; i++) {
a = a + 1;
}
console.log(a)
, если вы запустите это, «a» будет равно 5 в журнале консоли.
В вашем примере функция получает n-е число в последовательности Фибоначчи. a и b являются сохраненными значениями, которые необходимо перенести на следующую итерацию. «a» представляет последнее итерированное значение, а b представляет ожидающее итоговое значение.
, если вы передали 6, например:
Первая итерация: i равно 0, поэтому pu sh 0.
Вторая итерация: i равно 1, поэтому pu sh 1.
Третья итерация: сумма будет установлена в a (0) + b (1), поэтому 1. тогда будет установлено a 1 (наше последнее известное значение b), а затем b будет установлено в 1 (наша новая сумма)
Четвертая итерация: сумма будет установлена в a (1) + b (1), поэтому 2. a будет затем будет установлено значение 1 (снова), а b будет установлено в 2.
Пятая итерация: сумма будет установлена в a (1) + b (2), так что 3. тогда будет установлено значение 2 и b будет установлено на 3.
Шестая итерация: сумма будет установлена на a (2) + b (3), поэтому 5. a тогда будет установлено на 3, а b будет установлено на 5.
и for l oop будет заканчиваться и возвращать вывод, который будет: 0, 1, 1, 2, 3, 5
Это первые 6 чисел в последовательности Фибоначчи.
Надеюсь, это поможет вам.