- Node provides an excellent execution environment without need for the browser
- jslint / jshint / other static analysis tools catch most of the errors
- text editors, like my favorite SublimeText, open/close parentheses automatically, even showing me the current matching and outer pair
- setting up tools to run any build and test command on file changes under node is trivial by using tools like nodemon and grunt-watch.
- accidental global variables is easy to prevent using function closures.
- I prevent callback hell and pyramid of doom using promises and lately using generator functions
Most surprising thing that does not annoy me: I do not miss C++/C#/Java classes. While I used js prototypes at first, today most of my projects are semi-pure functional pipelines, transforming data in response to events using my favorite lodash library. There might be some state, but it is hidden inside separate modules using function closures.