Предварительное увеличение в 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 и не ссылается на переменную. Это намеренно и если да, то почему?

Ответы на вопрос(2)

Ваш ответ на вопрос