Olá a todos! Fiquei com uma dúvida durante a aula. Na aula declaramos um objeto com as propriedades nome e profissão. Quando acessamos via console.log vemos eles ali. Se queremos consultar alguma propriedade que não foi declarada, por exemplo o telefone, vamos ter o undefined como retorno no console.log. Após quando declaramos apenas a propriedade pessoa.telefone = "11 0320202" e rodamos um console.log ele vai retornar o número declarado, mas o console anterior continuara com o undefined. E se alterarmos o nome, incluindo o sobrenome teremos no novo console a alteração, mas o anterior fica como era. Minha dúvida é, essas novas propriedades não sofrem com o "hoisting"? Se eu entendi direito ao longo de outros cursos, o "hoisting" faz com que aquele valor que foi declarado dentro do código seja "levado" para o início do código evitando assim que ao ser chamado antes da declaração ele retorne o valor. Isso acontece nas variáveis let e var, se não estiver enganado.
Abaixo deixo o código que escrevemos em aula pra ficar mais claro.
const pessoa = {
nome: "Pedro",
profissao: "Engenheiro",
}
console.log(pessoa.nome);
//E se a gente buscar a o telefone dessa pessoa. Vai retornar undefined porque esse valor não foi definido.
console.log(pessoa.telefone);
//Se a for declarado fora da variavel. ele ira aparecer no próximo console, mas não acontece o hoisting, ou seja, não vai "subir" para o inicio do código, sendo aplicado apenas após a declaração.
pessoa.telefone = "14 2524655";
console.log(pessoa.telefone)
//Podemos alterar uma propriedade que já foi declarada. E quando consultamos a variável, iremos ver todas as alterações e inclusões feitas.
pessoa.nome = "Pedro Ivo"
console.log(pessoa)
Obrigado!