2
respostas

Em JS, a soma de 2 + 2, é 22??????

Boa tarde colegas, a fim de fazer alguns testes e ir me familiarizando com a linguagem, fiz algumas brincadeiras com o exemplo dado pelo professor.

O código é o seguinte:

console.log("Meu primeiro programa: trabalhando com variáveis")

const idade = 26;

console.log("A idade é " + idade)
console.log( 2 + idade)
console.log("a soma da idade +2, fica " + idade+2)
console.log("a idade subtraída por 2, fica " + idade-2)
console.log("a idade dividida por 2, fica " + idade/2)
console.log("a idade multiplicada por 2, fica " + idade*2)
const idadeSomada = idade+2
console.log(idadeSomada)

e eis a saída do código:

Meu primeiro programa: trabalhando com variáveis
A idade é 26
28
a soma da idade +2, fica262
NaN
a idade dividida por 2, fica 13
a idade multiplicada por 2, fica 52
28

Notem que quando tento somar a variável "idade" por 2, o resultado é "262"...

Intrigante.... Gostaria de entender por que isso acontece, e quais alternativas posso usar quando desejas realizar somas às variáveis.

Grato desde já.. Um forte abraço.

2 respostas

Olá, Se você colocar o "idade+2" entre parênteses funciona:

const idade = 26;
console.log("idade mais dois é " + (idade+2));

fica

idade mais dois é 28

O operador + serve tanto para soma de números quanto para concatenação de strings. Como não é utilizado nenhum parâmetro ele realiza a conversão da esquerda para a direita, já que todas são operações de mesma precedência, e concatenação de string com número resulta numa string:

"a soma da idade +2, fica" concatenado com a string "26"

em seguida ele faz o seguinte:

"a soma da idade +2, fica 26" concatenado com a string "2"