Undefined in js occurs where other languages either throw exceptions or fail compilation. In other words, it represents invalid program state. A language with this "feature" may as well do other insane things, like treat a call to a nonexistent function in some quirky way, like recursively calling the current function. Gotta keep that program running! And if js did that, there would be web devs here on hn arguing that it's a good thing, explaining how to incorporate the feature into designs.
*Edit - recursive rather than no-op, to make it do something that people might abuse.
*Edit - recursive rather than no-op, to make it do something that people might abuse.