It&#x27;s consistent with the other primitive functions:<p><pre><code>    console.log(Boolean(5)); &#x2F;&#x2F; true
    console.log(Number(&quot;5&quot;)); &#x2F;&#x2F; 5
    console.log(String(1)+1); &#x2F;&#x2F; &quot;11&quot;
</code></pre>
Using new with any of the other primitive functions takes the return value and creates it into an object with the primitive function&#x27;s prototype, which is kind of a coincidence it looks like it does anything useful but can cause a lot of issues because primitives and objects are different. If backwards compatibility weren&#x27;t king, I&#x27;d expect to see that get removed. Instead, the best they can do is make any new primitive functions throw a TypeError if used with `new`.