Strings (or numbers, or booleans etc) are primitives.
When you apply a method to them, like "hello".toUpperCase(), JS puts the string in an object (it “boxes” it), applies the method, then returns a new primitive string.
If you want that object, then that’s what new String is creating. If you want direct access to the underlying way JS handles the built-in objects it uses to do everything, then you might use the constructors. They are available, it’s just very unlikely you will be in a position where you need them.