Não seria bem mais simples o interpretador saber que mesmo dentro de aspas simples ou duplas seria a mesma coisa? tipo como no Python? e outro problema com a linguagem, porque ("2"+"2"-"2") é 20?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Não seria bem mais simples o interpretador saber que mesmo dentro de aspas simples ou duplas seria a mesma coisa? tipo como no Python? e outro problema com a linguagem, porque ("2"+"2"-"2") é 20?
Oi, Ailton, tudo bem?
Você declarar das duas formas:
const nome = 'Laís';
console.log(`Meu nome é ${nome}`)
console.log("Meu nome é " + nome)Mas é uma melhor prática declarar com o template literals pois você não precisará concatenar com a notação + e deixa mais elegante a declaração.
Sobre essa concatenação, você poderia colocar o código completo dela?
Sim, posso
console.log("2"+"2"-"2");o prompt retornou com 20 e não com 2, ele concatenou o "2"+"2", fez 22, depois subtraiu "2" e ficou 20...
Oi, Ailton, tudo bem?
É a concatenação de valores. Você está passando os valores primeiramente como string, já que você está usando aspas duplas. Então, você concatena essa valores:
const numero = "2"+"2"-"2";
console.log(numero)
console.log(typeof numero)No primeiro momento, esses valores são strings, depois que a concatenação deles, eles viram tipo number, por isso que quando você subtrai 2, fica 20.
Primeiro, o programa concatenou os valores strings ( "2"+"2") depois ele deixou de ser uma string virando number, sendo number, conseguimos fazer uma operação, a de -2.
O problema aqui é que Javascript é uma linguagem baixamente tipada, veja que o tipo de string pra number foi mudado porque a linguagem não pede que declare um tipo para ela. De fato, é confuso se em comparado com outras linguagens fortemente tipadas.
Se ficou alguma dúvida é só falar!