reference - внутренний тип, не является типом данных, нужен для разъяснительных целей результата операции присваивания и др.
Объект может содержать любое количество свойств, так же как и функция может содержать любое количество кода, а массив - любое количество элементов. Соответственно объект занимает неопределенное количество памяти, поэтому объект нельзя сохранить в переменой как значение.
Ссылка состоит из базового значения и имени. Базовым значением может быть: string, number, boolean, object или undefined.
Разрешение идентификатора всегда возвращает ссылку с именем идентичным идентификатору.