3
respostas

Porque crase pra declarar uma variável?

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?

3 respostas

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!