¿Por qué hacer referencia a una propiedad no existente de un objeto en javascript no devuelve un error de referencia?

Si intento hacer referencia a una variable no existente, obtengo ReferenceError en JavaScript. ¿Por qué hacer referencia a una propiedad de objeto no existente devuelve 'indefinido'? Aquí hay algo de código, siempre que lo esté escribiendo en un navegador:

alert(a);
ReferenceError: a is not defined //error is thrown
alert({}.a)
undefined //no error

Respuestas a la pregunta(1)

Su respuesta a la pregunta