When working with JavaScript, what techniques can be used to develop and test efficiently and accurately while focusing on algorithms rather than mechanics? Are there any useful tools that can be utilized in batch or command line mode (outside of an integrated development environment)?
I have noticed that when coding in JavaScript, a significant amount of time is spent uncovering issues caused by careless mistakes such as typo errors in variable names, property names, incorrect function calls, and more.
An effective tool should possess an understanding of the language semantics to detect these types of errors (such as identifying variable names, function names, etc.). In my experience, tools like JSLint/JSHint that solely examine syntax do not provide much assistance. They generate excessive stylistic warnings that are often irrelevant and fail to pinpoint critical errors.
Without a "coverage" tool and extensive testing, errors in lesser-used paths can slip through undetected. It is common to have JavaScript code live in production for months before discovering obscure crash errors.
In Perl, simply adding "use strict" ensures that the program won't execute until these issues are resolved, while "warnings" helps catch most other errors quickly. How can the JavaScript development process implement something similar?