Estoy creando un sitio web y no quiero que los usuarios ejecuten funciones en el script desde la consola de JavaScript. Descubrí que puedo poner todo el código en un alcance de bloque y declarar todo con let. ¿Es esta una mala práctica?
Es normal querer limitar el alcance de cualquier símbolo (variable, función) para evitar el uso no deseado. Lo que hace global o como parte de las exportaciones de módulos es la 'interfaz publicada', es probable que cualquier otra cosa sea privada.
Las expresiones de funciones invocadas inmediatamente ( IIFE ) son una forma típica de lograr esto.