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

Funcionamento do cifrão com chave ${}

Bom, fui utilizar o que professor falou de usar uma variável dentro de um texto usando o ${variável}. Percebi que se o texto for console.log("texto ${variável}") não funciona, porém usando console.log(texto ${variável}) funciona, exemplo:

let idade = parseInt("20");
let eu = "Joao";
let anoDeNascimento = 2000;
let contador = parseInt("0");

while(idade >= contador) {
    console.log(eu, "fez aniversário em", (anoDeNascimento + contador), ", onde ele fez ${contador} anos");
    contador++;
}

\\Não funciona
let idade = parseInt("20");
let eu = "Joao";
let anoDeNascimento = 2000;
let contador = parseInt("0");

while(idade >= contador) {
    console.log(eu, "fez aniversário em", (anoDeNascimento + contador), `, onde ele fez ${contador} anos`);
    contador++;
}

\\Funciona

É apenas um bug, ou é realmente isso que acontece?

3 respostas
solução!

Não é bug não! Se chama template literals, você consegue passar variaveis dentro de crases => .

Visivelmente fica mais entendivél:

console.log(eu, "fez aniversário em", (anoDeNascimento + contador), "onde ele fez", (contador), "anos");

console.log(${eu}, fez aniversário em ${anoDeNascimento + contador}, onde ele fez ${contador} anos);

https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Template_literals

Vi também que não está funcionando por você está utilizando "(aspas normais), utilizando crase ` vai funcionar.

exemplo:

console.log(`${eu}, fez aniversário em ${anoDeNascimento + contador}, onde ele fez ${contador} anos`);

Já descobri o problema

Eu uso a crase para fazer essa operação porem continua não funcionando

console.log("Trabalhando com atribuição de Variáveis");

const nome = 'Vinicius';
const sobrenome = 'Pires';
const idade = 17;

console.log(nome, sobrenome);
//console.log(nome + ' ' + sobrenome);
console.log('Meu nome é ${nome}');

Oq aparece pra mim

Trabalhando com atribuição de Variáveis. Vinicius Pires. Meu nome é ${nome}.