¿Cuáles son los beneficios de hacer que las propiedades no sean enumerables?

La enumeración es uno de los tres atributos de una propiedad: capacidad de escritura, enumeración y configurabilidad. Mis preguntas son:

¿Cuáles son los beneficios de hacer que las propiedades no sean enumerables en JavaScript? Sé que estamos ocultando la propiedad haciéndolos no enumerables, pero ¿cuáles son los beneficios de la ocultación de la propiedad?¿Podemos acceder a propiedades no enumerables? En caso afirmativo, ¿cuál es el beneficio de hacerlos no enumerables?¿Todas las propiedades predefinidas de los Objetos se establecen como no enumerables? Como el caso de Array's.pop ypush ¿Las propiedades no son enumerables?

Respuestas a la pregunta(3)

Su respuesta a la pregunta