Não faz sentido
Não tem sentido em fazer isso. Quando você abre o site, o o programa já é executado sincronamente(linha por linha).
Fazer isso só está adicionando uma função completamente desnecessária e alocando memória também desnecessária. Além disso, ao trabalhar com this
que é algo mais complexo na frente, você irá ter problemas com escopo, pois ao invés do this
acessar o escopo global, ele vai acessar o da função.
Resumindo: Desnecessário essa prática, pois não faz sentido chamar todo o script com uma função sendo que no momento em que abrimos o site, isso já acontece. É apenas mémoria alocada desnecessariamente.
Bugs:
A quantidade de bugs que isso pode causar... para não ter dores de cabeça com isso, utilize função apenas quando necessário, que não é o caso desta função que praticamente isola seu código do escopo global.
Parabéns:
Parabéns por perguntar antes de adotar está pratica. Questione tudo, não tenha vergonha. Estamos aqui para aprender. Todo mundo já foi iniciante um dia e todo mundo já teve o seu momento Hello World
.
Na verdade faz sentido sim e é uma prática muito comum. Assim como vc disse, realmente todo o código é executado no momento em que a página é renderizada, mas da forma como vc disse dá a entender que por esse motivo então não há nenhuma forma de o usuário alterar esse código ou o comportamento dele, mas não é bem assim. O código realmente não é possível de ser alterado, pelo menos não com facilidade, mas os valores das variáveis sim, e alterando os valores das variáveis o usuário pode mudar o comportamento do código e aí o ceu é o limite.
Geralmente é muito comum vc ver o pessoal usando pelo menos uma função anônimima autoexecutada, pq dessa forma não é possível alterar os valores das variáveis pelo console do navegador:
(function(){
// todo o código vai aqui
})();
ainda mais comum é alguns programadores usarem um event listener pra que essa função seja executada apenas depois que o carregamento da página seja concluído