Geralmente eu uso uma função anônima pra fazer isso, ficaria mais ou menos assim:
(function(){
const listaComObjetos = [];
const nome = document.querySelector('.nome');
const idade = document.querySelector('.idade');
const peso = document.querySelector('.peso');
const altura = document.querySelector('.altura');
const form = document.querySelector('.form');
const botao = document.querySelector('.botao');
const resultado = document.querySelector('.resultado');
function criaObjeto(nome,idade,peso,altura){
return{
nome:nome,
peso:peso,
idade:idade,
altura:altura
}
};
function recebeFormulario(e){
e.preventDefault();
let objeto = criaObjeto(nome.value,idade.value,peso.value,altura.value);
listaComObjetos.push(objeto);
console.log(listaComObjetos);
resultado.innerHTML += `Nome: ${nome.value}, idade: ${idade.value}, peso: ${peso.value}, altura: ${altura.value} </br>`
}
form.addEventListener('submit', recebeFormulario)
})();
Quando vc define tudo de forma global, as variaveis no escopo global são acessíveis e possíveis de terem os valores alterados pelo console do navegador, as funções também são possíveis de serem executadas pelo console, por isso eu faço dessa forma.
Alguém comentou aqui sobre colocar um event listener pra que seja executado quando o carregamento da página for concluído, isso também é uma boa prática mas nem sempre vai ser necessário, geralmente só colocar o JS no final do body, exatamente antes de fechar a tag body () já vai ser suficiente pra que o js seja executado depois da renderização dos componentes HTML, a não ser que tenha algo atrazando a renderização.
Prefiro usar essa função anônima pq as funções que são definidas de forma global também podem ser executadas pelo console do navegador, é só digitar o nome, passar os parametros da forma que quiser e apertar enter que vai ser executado, mas se a função for anonima, isso garante que não tem como ela ser executada a não ser no carregamento da página, pois nada faz referencia a ela, e tudo que está dentro da função anônima só é acessível pela própria função.
Só um adendo: já usei isso pra pegar dados de um serviço grande, empresa famosa, que era pago e tinha um acesso limitado, aí quando chegava no limite só poderia ter acesso no dia seguinte, aí abri o console, mudei algumas variáveis e comecei a executar as funções e aí consegui ter acesso ilimitado (não vou falar a empresa pra não dar problema), depois o pessoal descobriu a falha e corrigiram.