Javascript - O operador +

Operador “+”? O que tem de “mais” nisso - além do próprio operador? Vou te mostrar que esse operador pode te surpreender, dependendo da forma que você o usa. Quer ver? Vem comigo que eu te mostro! :)

Todo mundo que conhece um pouquinho de Javascript, sabe que o operador + serve para ao menos duas coisas: somar números e concatenar strings!

Mas você pode fazer muito mais com ele! Vou te mostrar todos os usos possíveis :)

Somar números

Quando você usa o operador + com dois operandos números, o JS efetua uma soma:

1
10 + 10; // 20

Executando esse código no console, você tem 20 como resultado.

Tá, e daí? Isso eu já sabia!

Calma que tem mais!

Concatenação

Quando você usa o operador + com dois operandos strings, ou um número e uma string, é feita uma concatenação. O interpretador do JS irá converter o valor que não é string para String, e fazer a concatenação:

1
2
3
'10' + 10; // "1010"
10 + 'kg'; // "10kg"
'Java' + 'Script'; // "JavaScript"

Experimente executar os códigos acima no seu console.

Nenhuma novidade ainda :(

Ainda não acabou ;)

Pré e pós incremento

Usando o + como um operador unário, você pode fazer pós ou pré-incremento em valores de variáveis. Vou exemplificar:

1
2
3
var number = 10;
number++; // 10
number; // 11

O que aconteceu acima foi o seguinte: declaramos uma variável number com o valor 10. Ao usar o operador de pós-incremento ++, a variável é avalidada, devolvendo o seu valor atual, e logo após, e feita a atribuição de todo o valor já existente na variável + 1.

Por isso que, chamando number++, o retorno é 10, mas na próxima chamada de number, o valor é 11.

Podemos fazer també pré-incremento:

1
2
3
var number = 10;
++number; // 11
number; // 11

Usando o operador de pré-incremento ++, a atribuição é feita primeiro, e então a variável é avaliada. Por isso, na chamada ++number, o valor retornado já não é o valor inicial de 10, mas sim 11.

Lembrando que esses operadores devem ser usados com cautela, pois causam efeito colateral no valor das varáveis, fazendo uma atribuição implícita.

Atribuição abreviada

Além dos operadores de pré e pós incremento, você ainda pode usar o operador de soma com atribuição abreviada, para somar valores diferentes de 1:

1
2
3
var number = 10;
number += 5;
number; // 15

Faz basicamente o que os exemplos anteriores faziam, com a diferença que você pode escolher o valor que será atribuído, e ainda deixar explícito que uma atribuição está sendo feita ;)

Mas ainda tem mais :D

Conversão de valores para número

Você ainda pode usar o operador + para converter de strings numéricas para números:

1
2
3
4
5
typeof '10'; // "string"
typeof +'10'; // "number"
'10' + 10; // "1010"
+'10' + 10; // 20
10 + +'10'; // 20

Perceba que, usando o operador + como unário antes de qualquer string numérica, essa string é convertida para número, e assim você consegue efetuar operações com números normalmente ;)

Usando o operador + dessa forma, tem o mesmo efeito de usar o objeto Number:

1
Number('10') + 10; // 20

Bom, esses são alguns usos do operador +. Você já conhecia todos? Ficou alguma dúvida? Comente!