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);




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:
Vivendo e aprendendo sempre rsrs. Muito obrigado Gustavo pelo esclarecimento da minha dúvida !!!
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