Показать сообщение отдельно
  #1 (permalink)  
Старый 07.12.2018, 14:18
hoz hoz вне форума
Интересующийся
Отправить личное сообщение для hoz Посмотреть профиль Найти все сообщения от hoz
 
Регистрация: 26.11.2018
Сообщений: 19

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