Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Erro , entre aspas duplas

Bom dia, Gostaria de saber porque o resultado e = 20

    ("2" + "2" - "2")= 20 

Pode parecer uma pergunta boba ,mas isso vai me ajudar a entender melhor a logica de programação. De acordo com o que sei, o codigo deveria reconhecer tudo como texto , se tornando " 222". Obrigado e um bom dia

1 resposta
solução!

Opa Antonio, tudo bem com você?

Não é uma pergunta boba não, realmente a maneira como que cada linguagem lida com a concatenação (+) de Strings, e operações nesse sentido, é algo que sempre da uma confundida, mas vamos lá:

O código vai ir indo da esquerda para direita e teremos:

  • "2" + "2": Aqui realmente teremos a concatenação como se fosse um texto com resultado "22"

  • "22" - "2": Aqui teremos um comportamento diferente, para o javascript o sinal de subtração não indica nada para textos, então ele tenta fazer uma conversão dos dois valores para números para executar a operação solicitada

    • Caso de sucesso teremos um valor numérico associado, no caso o 20.

    • Caso uma das parcelas não seja um número, por exemplo ( "22" - "2a") teremos um resultado de NaN (Not a Number)

A mesma coisa acontece com as operações de multiplicação e divisão, dado que só o sinal de + tem significado com textos, todos outros a linguagem vai tentar fazer a conversão

Mas veja que isso é com javascript, em Python por exemplo:

"teste" * 2

Irá retornar "testeteste"

Pois a linguagem deu um significado a operação de multiplicação com palavras, em javascript o retorno seria NaN pelo que comentei :)

Conseguiu Compreender?

Abraços e Bons Estudos!