Почему так странно работает постинкремент ?   
		
		
		
		Имею опыт разработки на 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++
 
- a = "то что получилось в результате выполнения предыдущей операции, а это 2"
 
 Потом у нас есть  ;, который обозначает, что инструкция выполнена и появился переход к следующей инструкции. Уже должно было бы значение  a измениться и стать 2. Но этого не происходит. 
Хотя, в любом другом языке было бы проще. Вернётся после выполнения так сказать строки тоже самое. Разница лишь в том, что выведет переменная с пост(пре)инкрементов в момент этой операции. Но не иначе. 
Кто-нить это вообще понимает мне интересно? Или это костыль?  
	 |