Согласно спецификации языка, в JS есть такие типы:
1. Языковые типы: Undefined, Null, Boolean, String, Number и Object.
2. Типы спецификации: Reference, List, Completion, Property Descriptor, Property Identifier, Lexical Environment и Environment Record.
http://es5.javascript.ru/x8.html#x8Второй класс типов является внутренним (скрытым от программиста) контролем, эти типы проставлены для соответствующих выражений до запуска программы.
Первый же класс — полноценные типы. Во время выполнения каждая сущность, которую программист может обозначить символом, имеет определенный тип, заведомо неизвестно какой. Типы определяют поведение. Пример: поведение операции + зависит от типов операндов. Для конкретного символа до запуска программы нельзя достоверно сказать, какой тип она будет иметь. Пользовательских типов нет.
P.S. ещё, вроде, RegExp должен быть типом, странно что он не указан.