1
resposta

Saída inesperada no terminal

Por que quando eu coloco um objeto dentro do console.log() dá certo, mas quando coloco um objeto interno ao objeto, a saída no terminal é diferente: [object Object] (Tipo: object)"?:

const pessoa = {
    nome: "Ana",
    idade: 25,
    solteiro: true,
    hobbies: ["Leitura", "Caminhada", "Fotografia"]
};

pessoa.endereco = {
    rua: 'Rua X',
    cidade: 'Cidade Y',
    estado: 'Estado Z'
};

function mostrarInfoPessoa(pessoa) {
    console.log("Informações da Pessoa:");
    console.log(`Nome: ${pessoa.nome} (Tipo: ${typeof pessoa.nome})`);
    console.log(`Idade: ${pessoa.idade} anos (Tipo: ${typeof pessoa.idade})`);
    console.log(`Solteiro: ${pessoa.solteiro} (Tipo: ${typeof pessoa.solteiro})`);
    console.log(`Hobbies: ${pessoa.hobbies.join(", ")} (Tipo: ${typeof pessoa.hobbies})`);
    console.log(`Endereço: ${pessoa.endereco} (Tipo: ${typeof pessoa.endereco})`);
}

mostrarInfoPessoa(pessoa);
console.log(pessoa);

Terminal: Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Oi Luidi,

O que você está observando no seu código se deve ao fato de que, quando você tenta imprimir um objeto diretamente usando console.log(), o JavaScript chama o método toString() desse objeto. Para objetos, o método padrão toString() retorna a string "[object Object]", o que explica a saída que você está vendo.

Para visualizar o conteúdo do objeto endereco, você pode usar console.log(JSON.stringify(pessoa.endereco)), que converterá o objeto em uma string JSON legível. Aqui está como você pode ajustar a linha onde imprime o endereço:

console.log(`Endereço: ${JSON.stringify(pessoa.endereco)} (Tipo: ${typeof pessoa.endereco})`);

Dessa forma, a saída mostrará as propriedades do objeto endereco de forma mais clara. Assim, seu código completo ficará assim:

function mostrarInfoPessoa(pessoa) {
    console.log("Informações da Pessoa:");
    console.log(`Nome: ${pessoa.nome} (Tipo: ${typeof pessoa.nome})`);
    console.log(`Idade: ${pessoa.idade} anos (Tipo: ${typeof pessoa.idade})`);
    console.log(`Solteiro: ${pessoa.solteiro} (Tipo: ${typeof pessoa.solteiro})`);
    console.log(`Hobbies: ${pessoa.hobbies.join(", ")} (Tipo: ${typeof pessoa.hobbies})`);
    console.log(`Endereço: ${JSON.stringify(pessoa.endereco)} (Tipo: ${typeof pessoa.endereco})`);
}

Agora, ao executar a função mostrarInfoPessoa(pessoa), você verá as informações do endereço de maneira mais detalhada.

tux matrix    Caso este post o tenha ajudado, por favor, marcar como solucionado ☑️. Bons Estudos! 🤓