Помогите разобраться с инкрементами и присваиванием.. JS
Помогите разобраться пожалуйста. Есть код:
let counter = 1;
let a = counter++;
alert(a); //1
alert(a); //1
Однако если сделать
let counter = 1;
let a = counter++;
alert(counter++); //2
alert(counter++); //3
Хотя по сути код один и тот же. Почему разные результаты?
Я приведу немного другой пример:
let counter = 1;
let a = counter += 2;
//counter у нас стал 3 и запомнился
alert(a); //3 counter не изменился
alert(a); //3 counter не изменился
alert(counter); //3
let counter = 1;
let a = counter += 2;
//counter у нас стал 3 и запомнился
alert(counter += 2); //counter стал 5 и запомнился
alert(counter += 2); //counter стал 7 и запомнился
alert(counter); //7
То есть, если я правильно понимаю, если в коде явно не прописать само название переменной (например counter += 2), то ее использование в других переменных будет использовать последнее явно записанное состояние. В данном примере хоть а = counter += 2, то инкремент а не оказывает влияния на сам counter. Верно?