Почему результатом кода является 11?

let a = 1;

function foo() {
  a = 2;
  return 10;
}
a += foo();


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

Автор решения: Кирилл Панишев

Потому что a += foo(); равно a = a + foo();. Здесь значение a берется раньше чем мы выполнили foo(). Так что берется значение 1, а не 2. Если бы в коде было написано a = foo() + a; то ответ был бы 12

→ Ссылка