String
The String() constructor creates string objects. Primitive strings are turned into objects behind the scenes if you call a method on them as if they were objects. Omitting new gives you primitive strings.
Creating a string object and a string primitive:
    > var s_obj = new String('potatoes');  
    > var s_prim = 'potatoes'; 
    > typeof s_obj; 
    "object" 
    > typeof s_prim; 
    "string" 
The object and the primitive are not equal when compared by type with ===, but they are when compared with == which does type coercion:
    > s_obj === s_prim; 
    false 
    > s_obj == s_prim; 
    true 
length is a property of the string objects:
    > s_obj.length; 
    8 
If you access length on a primitive string, the primitive is converted to an object behind the scenes and the operation is successful:
    > s_prim.length; 
    8 
String literals work fine too:
    > "giraffe".length; 
        7