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?
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!