 <p>There is no need to write <code>new String()</code> to create a new string. When we write <code>var x = 'test';</code> statement, it create the <code>x</code> as a string from a primitive data type. We can't attach the custom properties to this <code>x</code> as we do with object literal. ie. <code>x.custom = 'abc';</code> <code>x.custom</code> will give undefined value. Thus as per our need we need to create the object. <code>new String()</code> will create an object with <code>typeof()</code> Object and not string. We can add custom properties to this object.</p>