Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

document.write ("20" + "20"); vai dar 2020, pois os "números" estão em string, entretanto porque document.write ("20" * "20"); da 400?

Eu entendi que dentro do document.write se estiver entre aspas será entendido como string e a operação de soma irá apenas juntar os dois "textos", entretanto se eu utilizar a operação de multiplicar entre dois números entre aspas no document.string (por exemplo: document.string("20" * "20");) ele realiza uma multiplicação entre os dois, porque?

2 respostas
solução!

Isso ocorre porque o JavaScript é amigo do peito. Ele vê que você pegou duas strings e realizou a multiplicação. Ele pensa assim "poxa, esse cara vez algo que não tem nada a ver, não é possível multipliar uma string por outra, mas peraí! Essas string contém números, então vou converter para número automaticamente e realizar a multiplicação para ajudar o programador amigo".

Faça isso no console:

"20" * "20" // o resultado será 40
"10" / 2 // o resultado será 5
"10" +  "10" // o resultado será a string "1010"

Veja que no caso do operador "soma", o JavaScript não pode tentar converter para você, porque ele não sabe que você quer realizar uma soma ou uma concatenação.

Essa parte de conversão implícita ficará mais clara quando você avançar no curso. Terá um problema resultante desse processo e você aprenderá que a boa prática é você converter a string em número e não confiar na conversão do JavaScript.

Espero ter ajudado meu aluno. Bola pra frente muito estudo!

Opa, entendi!

Curioso ele fazer essa conversão rs

Muito obrigado Flavio :)