Dúvida sobre IIFE e Block Statement
Funções IIFE e Block Statement
Sou iniciante no mundo de JS e me deparei com algo:
Estudei funções IIFE e gostei de seu uso, porém eu li algumas páginas que diziam que o Block Statement faz a mesma coisa que o IIFE e que o mesmo agora não é mais necessário.
Problema e Dúvidas
Porém ao criar um código aqui, percebi que o Block Statement não encapsula minhas funções do escopo global (ou seja, eu consigo chamá-las no console do navegador). Enquanto isso, ao usar IIFE, não consigo acessar nada através do console (que é o meu objetivo). Então começou a surgir dúvidas em minha mente:
- Ainda é "correto" usar IIFE? Se não, porquê não e como posso fazer para resolver a minha situação?
- Block Statement literalmente faz a mesma coisa que IIFE ou há diferenças?
- Há algum problema das funções serem globais, ou o real problema é quando apenas as variáveis que são do escopo global?
Obs.: Ao usar IIFE e Block, ambos os casos o código funcionou - estou mais preocupado com segurança e boas práticas
Agradeço quem puder me ajudar, pesquisei em vários lugares e não achei nada claro sobre o que queria.