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: ...

Get Object-Oriented JavaScript - Third Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.