I wrote a blog post a while ago detailing how the availability of both primitive and object-wrapped value types in JavaScript (for things such as Number, String and Boolean) causes trouble, including but not limited to type-casting to a boolean (e.g. object-wrapped NaN, "" and false actually type-cast to true).
My question is, with all this confusion and problems, is there any benefit to JavaScript having both types of values for the built-in classes?
Edit: Thanks for the quick answers. I think that the creators of JavaScript intended wrapped natives as a way to make scalar values have child methods, but it clearly backfired, causing more problems.