Если я попытаюсь ссылаться на несуществующую переменную, я получаю ReferenceError в JavaScript. Почему ссылка на несуществующее свойство объекта возвращает 'undefined'? Вот какой код, если я пишу его в браузере:
alert(a);
ReferenceError: a is not defined //error is thrown
alert({}.a)
undefined //no error