Article image
Eros Amorim
Eros Amorim02/02/2024 22:27
Compartilhe

Alguém explica o por quê ?

  • #JavaScript

Bem estou realizando algums teste para aprendizado em JavaScript e fiquei com uma cruel dúvida, o porquê o código abaixo não funciona.

let livros = {

1: 'O homem mais rico da babilônia',

  2: 'Meditações',

  3: 'Templarios',

};

console.log(livros.3);

-------------------------------------------------------------------------------------

E o código abaixo funciona:

let livros = {

1: 'O homem mais rico da babilônia',

  2: 'Meditações',

  3: 'Templarios',

};

function logLivros(numero){

console.log(livros[numero]);

};

logLivros(3);

Compartilhe
Comentários (3)
Eros Amorim
Eros Amorim - 07/02/2024 22:09

Verifique e estudei o assunto sobre acessar direto ou dinâmico as propriedades de um objeto.


Com auxilio do chatgpt ele explica quê:


O código JavaScript não funciona porque o nome das propriedades em um objeto não pode começar com números, a menos que você use a notação de colchetes para acessar a propriedade. No seu caso, a propriedade 3 é um número e, portanto, não pode ser acessada diretamente usando a notação de ponto.

Para acessar a propriedade 3 corretamente, você deve usar a notação de colchetes. Veja como corrigir o código:

Eros Amorim
Eros Amorim - 03/02/2024 16:03

Vivendo e aprendendo sempre rsrs. Muito obrigado Gustavo pelo esclarecimento da minha dúvida !!!

Gustavo Silva
Gustavo Silva - 02/02/2024 22:40

No primeiro código, a tentativa de acessar 'livros.3' não funciona porque a notação de ponto requer que o identificador seja uma string válida, e números não são permitidos como identificadores.

No segundo código, você usa uma função chamada 'logLivros' que aceita um número como argumento e usa a notação de colchetes para acessar o valor correspondente no objeto livros. Essa abordagem é correta e funciona como esperado.


Espero que ajude