Сообщение от e1f
|
"test".substr(1)
|
Обращение к свойству (и ещё пара операций) инициирует
создание одноразового объекта в рамках конвертации примитивного значения в объект. Объект позволит обратиться к прототипу и т.д. Это не означает, что примитивные значения можно считать объектами или что у примитивных значений есть свойства, это обычное движение из типа в тип, только его не видно...
Сообщение от e1f
|
some_func(String(var1))
|
Есть разница между 'String()' и 'new String()', первое - это вызов функции и конвертация в строку, второе - это вызов конструктора и создание объекта. Оператор 'typeof' будет работать как должен:
var s = 'text';
alert( [ typeof ( s ), typeof String( s ), typeof ( new String( s ) ) ] ); // string,string,object