

No.
By that same logic, memory safety issues in C/C++ don’t make them bad programming languages.
If you’re worried about it, like you’re accepting input from the user, sanitize it.
if (typeof userProvidedData !== "string") {
throw new Error("Only works on strings.");
}
Better yet, put that in a function called assertString.












Yes, if you do silly things with JS, you generally get silly results instead of TypeErrors. I wouldn’t say that makes the language bad. It makes the language resilient to bad programming, which you’d generally want in the case of web pages.