Предварительное увеличение в Javascript
Я только что встретил «особенность» в Javascript, касающуюся предварительных приращений. На всех других языках, которые я использовал, все идет так, как я думал. Например. в C ++:
#include <iostream>
int main()
{
int i = 0;
i += ++i;
std::cout << i << std::endl; // Outputs 2.
}
Так,++i
не делает копию переменной, следовательно, вывод равен 2.
То же самое в PHP:
<?php
$i = 0;
$i += ++$i;
echo $i; // Outputs 2.
Тем не менее, в Javascript:
var i = 0;
i += ++i;
console.log(i); // Outputs 1.
Так выглядит в Javascript, это делает копиюi
и не ссылается на переменную. Это намеренно и если да, то почему?