Объясните пожалуйста, почему данный код выводит число 13?
var i = 5;
i = ++i + ++i;
console.log(i); // 13
++i
- это преинкремент. Он вычисляется перед использованием переменной.
Т.е, вычислилось первое ++i
, в i
теперь 6
, выражение теперь 6 + (++6)
. Потом вычислили второе ++i
, в i
теперь 7
. Потом сложили 6 + 7
, получили 13
.
С другой стороны, к примеру, если взять постинкремент i++
.
После i = i++ + i++;
в i
будет 11
, т.к. постинкремент вычисляется после использования переменной.
Т.е, подставилось в выражение, вычислилось первое i++
, в i
теперь 6
, получили выражение 5 + (6++)
. Потом второе i++
, в i
было 6, оно и подставилось, стало 5 + 6
, после чего i
стало равно 7
. Cложили 5 + 6
, получили 11
.
Все верно. Сначала выполняется "первый" i++, потом "второй". Лишь потом складывается.
Пытаюсь настроить рабочее окружение Ubuntu на VirtualBoxСтолкнулся с проблемой установки MySql
Требуется чтобы при наличии дубликатов кол-во увеличивалось не на 1, а на то, что пришло в переменных в разделе VALUES(например productprod_count + 2)