I actually like JavaScript, and weak typing is one of the reasons.
Or do you mean dynamic typing?
The only real gotcha in validation is when you want something that is a numeric-string or a number to be a number, and anything else to be a null. Outside of that case, I find that dealing with data migrations/translations in JS is FAR better in practice than most of the options I've used. Especially when you compare to the likes of say C, C#, Java etc... Yes, you can use strong XML validation, but it tends to produce a lot of errors that are recoverable in JS.