Почему так странно работает постинкремент ? 
		
		
		
		Имею опыт разработки на Java. Перешёл вот несколько дней назад на JS (изучаю ещё). Читаю учебник. Читаю запоем, что бы не пропустить какие-то нюансы. На один из них я наткнулся сегодня: 
	Читаю здесь Есть 2 момента: 1. var i = 1; var a = ++i; // (*) alert(a); // 2 Здесь всё понятно и логично. 2. var i = 1; var a = i++; // (*) alert(a); // 1 Это не логично и не понятно вообще. Потому что есть строка: var a = i++; // (*) Здесь порядок исполнения операторов и соот-но кода будет следующий: 
 Хотя, в любом другом языке было бы проще. Вернётся после выполнения так сказать строки тоже самое. Разница лишь в том, что выведет переменная с пост(пре)инкрементов в момент этой операции. Но не иначе. Кто-нить это вообще понимает мне интересно? Или это костыль?  | 
	
		
 я не понимаю в чем затруднение 
	++ работает точно так же как и в старом добром С, откуда он и взят i++ запоминает старое значение, инкрементирует переменную, возвращает старое значение  | 
	
		
 Цитата: 
	
 Переменной присваивается значение другой переменной, после чего происходит постинкремент последней.  | 
	
		
 Цитата: 
	
  | 
	
		
 Цитата: 
	
 В JS же будет следующее i=1; a=i; i=i+1; alert(a+', '+i);  | 
	
		
 Цитата: 
	
  | 
	
		
 Цитата: 
	
  | 
	
		
 Цитата: 
	
 Если ты не веришь букваю... Не веришь своим глазам... Тебя остается только пожалеть. :(  | 
	
		
 Цитата: 
	
 
var a=0;
var b=0;
alert('Инкремент '+(++a));
alert('Постинкремент '+b++);
alert('a='+a+', '+'b='+b);
 | 
	
		
 Цитата: 
	
  | 
	
		
 Цитата: 
	
 Префиксный увеличивает значение переменной до того как выражение получило фактическое значение переменной. Постфиксный после того как выражение получило фактическое значение переменой. Так исторически сложилось еще в древних ассемблерах операция INC или DEC регистра очень часто встречалась либо в начале блока либо в конце после этого проверка и переход в начало кода или выход из него (реализация обычного цикла). т.к. это было практически в любом цикле то для такого поведения в высоко уровненных языках придумали специальный коротки оператор.  | 
	
		
 Цитата: 
	
 а старое значение запоминать надо, чтобы его вернуть. потому постикремент чуть медленнее (по крайней мере в С) и некоторые в циклах for по привычке пишут ++i более того, в плюсах можно для своих классов переопределять операторы, в том числе ++/-- https://ru.wikipedia.org/wiki/%D0%9F...80%D0%BE%D0%B2 и можно заметить, что постикремент делается именно как я написал, с копией старого значения  | 
| Часовой пояс GMT +3, время: 16:52. |