When the String() constructor is used in a new expression it creates a new object based on the String prototype.
The value property of the new object is the same as the string that would have been returned when the constructor was invoked as a function call.
The result of this function is a String object version of the value passed-in. If there is no passed in argument an empty string "" is returned.
Refer to the String() conversion function topic for a list of rules for converting other data types to strings.
Note that unlike the Object() constructor which can be called without its parentheses, calling the String() constructor without them yields an uninitialized object.
ECMA 262 edition 2 - section 18.104.22.168
ECMA 262 edition 2 - section 15.5.1
ECMA 262 edition 2 - section 22.214.171.124
ECMA 262 edition 3 - section 15.5.2