>>И typeof в ОО-языках - это не просто оператор, который выводит тип якобы только для сведения. Взаимосвязь типов - это не следствие фич оператора typeof, а наоборот, вывод оператора typeof - это следствие взаимосвязи типов (и объектов).
> Все так, но в качестве исключения в JS для типа Null выдает строку 'object'.Не знал.
Точнее я сейчас посмотрел - там typeof просто тупо выдает строки, а не ссылки на объекты типов.
(Сам тип - это тоже объект, точнее так должно быть в соответствии с религией^W моделью).
Так что правильно говорить, что это не фича оператора typeof, а что typeof сам по себе является фичей, а не частью религии^W модели. То есть он ее не ломает, он в нее просто не входит.
>>Во-первых, при чем здесь null? С null там все в порядке - это объект.
> А здесь заблуждаетесь, null принадлежит типу Null, который является тем, что вы называете старой школой, то есть не наследует от Object, иначе у него были бы свойства и методы от Object, а их нет.
Нет, не заблуждаюсь. Object - это просто имя некоторого типа. Если некоторые типы не наследуются от Object - это не значит, что объекты этого типа не являются полноценными объектами в соответствии с религией^W моделью.
Просто у них разные метатипы.
"Старая школа" конечно менее изящная, но общая логика не ломается, просто является более "заковыристой".
И с null и его типом Null, пока по-прежнему все в порядке, он просто входит в комплект базовых типов.
Если я что-то новое об этом не узнаю.
> Ну и на всякий случай спецификацию смотрите в разделах 4.3 и 8.
> Плюс к тому 11.4.3 про typeof.
Мне спецификацию сейчас было лень искать, я глянул на javascript.ru
Как я уже сказал выше, typeof просто возвращает строки, а не сами типы.
Он просто весь целиком "из другой оперы".
Поэтому то, что что он ведет себя с null как-то по-другому, на общую модель вообще никак не влияет.
>>Я лишь сказал, что если нужны операторы с полноценной поддержкой типов...
> Просто вы это писали в ответ на мое недовольство оператором +, который может и сложение чисел и конкатенцию строк, мне оно не удобно.
> Только и всего, хочу отдельный оператор для конкатенции, а + только для сложения. =)
Так я говорю, не следует ожидать многого от операторов, если они не поддерживают общую модель типов языка, а только некоторые частные случаи.