Tipos prefixo e pós-fixo em JavaScript

Na verdade, as operações de incremento e decremento podem ser escritas de duas maneiras. Vamos examinar essas maneiras usando o exemplo ++, e para -- tudo será análogo.

Na primeira maneira, a operação é escrita após o nome da variável, assim: a++, e na segunda maneira - antes do nome da variável, assim: ++a.

A primeira forma é chamada de pós-fixada, e a segunda - prefixada. Vamos ver em quais casos a diferença entre essas duas formas se manifesta.

Suponha que temos o código alert(a++) e o código alert(++a).

No caso de alert(a++), a variável primeiro é exibida e depois incrementada em um, e no caso de alert(++a), a variável primeiro é incrementada em um e depois exibida.

No exemplo a seguir, o primeiro alert exibirá 0, porque primeiro a exibição na tela ocorre, e só então a variável é incrementada:

javascriptlet num = 0;
alert(num++); // exibirá 0
alert(num);   // exibirá 1

E agora a variável primeiro será incrementada, e só então será exibida na tela:

javascriptlet num = 0;
alert(++num); // exibirá 1 - a variável aumentou imediatamente

Esse comportamento é válido não apenas para exibição na tela, mas também para atribuição:

javascriptlet num1 = 0;
let num2 = num1++; // o valor 0 será atribuído à variável num2
alert(num2); // exibirá 0
alert(num1); // exibirá 1 - a variável num1 mudou após a atribuição a num2

E agora vamos mudar a forma pós-fixada para a prefixada:

javascriptlet num1 = 0;
let num2 = ++num1; // o valor 1 será atribuído à variável num2
alert(num2); // exibirá 1

Se nossa operação é executada em uma linha separada, não há diferença entre as formas prefixada e pós-fixada:

javascriptlet num = 0;
++num;
num++;
alert(num); // exibirá 2
Задание 1

Sem executar o código, determine o que será exibido na tela:

javascriptlet num = 3;
alert(++num);
Задание 2

Sem executar o código, determine o que será exibido na tela:

javascriptlet num = 3;
alert(num++);
Задание 3

Sem executar o código, determine o que será exibido na tela:

javascriptlet num = 3;
alert(--num);
Задание 4

Sem executar o código, determine o que será exibido na tela:

javascriptlet num = 3;
alert(num--);
Задание 5

Sem executar o código, determine o que será exibido na tela:

javascriptlet num1 = 3;
let num2 = ++num1;
alert(num1);
alert(num2);
Задание 6

Sem executar o código, determine o que será exibido na tela:

javascriptlet num1 = 3;
let num2 = num1++;
alert(num1);
alert(num2);
Задание 7

Sem executar o código, determine o que será exibido na tela:

javascriptlet num1 = 3;
let num2 = --num1;
alert(num1);
alert(num2);
Задание 8

Sem executar o código, determine o que será exibido na tela:

javascriptlet num1 = 3;
let num2 = num1--;
alert(num1);
alert(num2);
Задание 9

Sem executar o código, determine o que será exibido na tela:

javascriptlet num1 = 3;
num1++;
let num2 = num1--;
alert(num1++);
alert(--num2);