Como pegar nome de variável em string com JavaScript

Neste artigo você vai aprender a como pegar nome de variável em string com JavaScript, vem conferir como é simples!

como pegar nome de variável em string com JavaScript capa

Fala programador(a), beleza? Bora aprender mais sobre JavaScript!

Entendendo a necessidade de pegar nome de variável em string com JavaScript

Em JavaScript, uma das linguagens de programação mais usadas no desenvolvimento web, temos a possibilidade de manipular strings e variáveis de formas distintas e poderosas.

Por vezes, pode surgir a necessidade de pegar o nome de uma variável em uma string, seja para fins de depuração, seja para a criação de mensagens dinâmicas ou geração de relatórios.

Entender como pegar nome de variável em string com JavaScript é uma habilidade fundamental para qualquer desenvolvedor que trabalha com essa linguagem.

Nome de variável e valor de variável

Antes de avançar, é importante esclarecer a diferença entre o nome de uma variável e seu valor.

O nome de uma variável é a identidade que você dá a ela ao declará-la, enquanto o valor de uma variável é o dado que ela armazena.

Por exemplo, em let nome = "João";, “nome” é o nome da variável, enquanto “João” é o valor que ela armazena.

A impossibilidade direta de pegar o nome de uma variável

Em JavaScript, uma vez que a variável é definida, não há uma maneira direta de pegar o nome da variável em uma string. Isso porque o nome da variável é apenas um identificador usado no código-fonte.

Quando o código é executado, o JavaScript não mantém a informação do nome da variável. Em vez disso, ele se preocupa apenas com os valores que essas variáveis representam.

Formação Vibe Coding
Formação Recomendada

Formação Vibe Coding

Do Prompt ao Produto: Crie Software Real com IA

  • 474 aulas
  • 20 projetos
  • 39h 27min

Utilizando objetos para armazenar nomes de variáveis

Apesar dessa limitação, existe uma estratégia que pode ser usada para associar nomes de variáveis a seus valores: o uso de objetos.

Em um objeto JavaScript, podemos armazenar pares de chave-valor, onde a chave pode ser pensada como o nome da variável, e o valor é o valor da variável.

Veja um exemplo:

let nome = "João";
let idade = 25;
let profissao = "Programador";

let objeto = { nome, idade, profissao };

console.log(objeto);

No console, veremos a seguinte saída: { nome: "João", idade: 25, profissao: "Programador" }.

Agora, temos uma maneira de pegar o nome das variáveis em uma string, que é usando as chaves do objeto.

O método Object.keys

O método Object.keys pode ser usado para pegar o nome das variáveis. Ele retorna um array contendo os nomes (ou chaves) das propriedades enumeráveis de um objeto.

let keys = Object.keys(objeto);

console.log(keys); // Saída: [ 'nome', 'idade', 'profissao' ]

Com isso, conseguimos pegar os nomes das variáveis em strings.

No entanto, é importante lembrar que essa abordagem só funciona se você controlar a criação das variáveis e puder armazená-las em um objeto.

Em muitos casos, a necessidade de pegar o nome de uma variável em uma string pode ser um indicativo de que você deve repensar a estrutura do seu código.

Criando objeto temporário para pegar nome de variável

Outra técnica que pode ser utilizada é a criação de um objeto temporário, e o uso de Object.keys, veja um exemplo:

const nome = 'John'

Object.keys({nome})[0]

Quer aprender mais sobre JavaScript? Confira o vídeo abaixo:

Conclusão

Pegar o nome de uma variável em string com JavaScript pode ser um desafio, pois a linguagem não oferece um meio direto de fazer isso.

No entanto, através da utilização de objetos, é possível criar uma associação entre o nome de uma variável e seu valor, o que pode ajudar a atingir esse objetivo.

Contudo, é importante frisar que a necessidade de pegar o nome de uma variável em uma string pode ser um sinal de que a estrutura do código precisa ser repensada.

Muitas vezes, o uso adequado de objetos, funções e o encapsulamento de código podem fornecer soluções mais robustas e manuteníveis.

Está buscando em evoluir como Programador? Confira o nossos cursos clicando aqui.

Nosso principal objetivo é tornar você um dev profissional que é capaz de resolver problemas de alta dificuldade e criar projetos complexos, através de uma metodologia planejada nos mínimos detalhes, após formar muitos outros desenvolvedores.

Cursos com vários projetos, exercícios, material apoio, comunidade de alunos e muito mais!

A resposta curta:

JavaScript não guarda o nome da variável em tempo de execução, então não existe um jeito direto de transformar esse nome em string

O caminho que funciona é colocar a variável dentro de um objeto e ler a chave dele com Object.keys, assim:

const nome = ‘João’

‘nome’

Abaixo eu abro o porquê disso e mostro os detalhes que costumam pegar as pessoas de surpresa =)

Por que { nome, idade, profissao } já vira as chaves certas?

Repara que em nenhum momento a gente escreveu { nome: nome, idade: idade }

Isso é o shorthand de propriedade do JavaScript: quando a chave tem o mesmo nome da variável, dá pra escrever só uma vez e a linguagem monta o par pra você

Ou seja, as duas formas abaixo produzem exatamente o mesmo objeto:

let objeto = { nome: nome, idade: idade }

let objeto = { nome, idade }

E é justamente esse detalhe que faz a mágica acontecer, o nome da variável vira a chave, e a chave a gente CONSEGUE ler como string

Tome cuidado com uma coisa: se você renomear a chave na hora de montar o objeto, o nome original se perde

let usuario = ‘João’

‘cliente’

O retorno é ‘cliente’, não ‘usuario’, porque o que você lê é a chave, nunca a variável em si

Transformando isso em uma função reutilizável:

Então bora encapsular isso numa função e resolver de vez:

function nomeDaVariavel(obj) { }

const idade = 25

console.log(nomeDaVariavel({ idade })) // Saída: ‘idade’

O pulo do gato é lembrar de sempre passar a variável entre chaves, criando o objeto temporário na hora da chamada

O uso mais comum disso é log e depuração, quando você quer que a mensagem mostre o nome e o valor juntos:

const total = 199

console.log(${nomeDaVariavel({ total })}: ${total}) // Saída: total: 199

E se você quiser nome e valor de uma vez só, dá pra trocar Object.keys por Object.entries:

const nome = ‘João’

Enquanto o keys devolve só as chaves, o entries devolve pares de chave e valor, bem útil pra montar mensagem dinâmica

Bora testar no console? 🙂

Cuidados antes de depender do nome da variável:

Antes de sair usando isso em produção, se liga em alguns pontos

Só funciona se VOCÊ controla a criação da variável, se o dado vem de fora (uma API, um parâmetro de função, um retorno de outra lib) o nome que você enxerga no seu código não é o nome de lá

Dentro de uma função, o nome do parâmetro é o que vale, não o nome que quem chamou usou:

function mostrar(valor) { }

const idade = 25

console.log(mostrar(idade)) // Saída: ‘valor’

Ou seja, o nome viaja junto com a variável? Não, ele nunca sai do lugar onde o objeto foi montado

Outro ponto: código que passa por processo de build costuma encurtar nomes de identificadores pra reduzir o arquivo final

Como o nome do objeto temporário é montado a partir do identificador, isso vira uma dependência frágil pra qualquer coisa que não seja log e depuração

Já me ferrei uma vez confiando demais em coisa parecida, então a régua é simples: use pra debugar e pra montar mensagem, não pra lógica de negócio

Perguntas frequentes sobre pegar nome de variável em string com JavaScript

Dá pra pegar o nome de uma variável direto, sem objeto?

Não, o JavaScript não expõe o identificador em tempo de execução

O nome existe só no código-fonte, na hora de rodar o que sobra é o valor, por isso o objeto temporário é o caminho

Como pegar o nome de uma variável em string na prática?

Monte um objeto com ela usando o shorthand e leia a primeira chave:

const nome = ‘João’

Qual a diferença entre Object.keys e Object.entries nesse caso?

O Object.keys devolve um array só com as chaves, ou seja, os nomes

O Object.entries devolve arrays de chave e valor, útil quando você quer imprimir os dois juntos

E se eu quiser os nomes de várias variáveis de uma vez?

Joga todas no mesmo objeto e chama o Object.keys nele:

const nome = ‘João’ const idade = 25

Precisar do nome da variável é sinal de código ruim?

Nem sempre, pra log e depuração é totalmente válido

Agora, se a sua lógica de negócio depende do nome do identificador, aí sim vale repensar a estrutura e trocar por um objeto com chaves explícitas

Leia também

Subscribe
Notify of
guest

0 Comentários
Oldest
Newest Most Voted

Formações

Formação SAAS com IA

Formação SAAS com IA

Tire usas ideias do papel criando softwares com IA, integre pagamentos e lance seu projeto!

  • 291 aulas
  • 18 projetos
  • 24h 17min

Blog | Mais populares