It is very flexible so you can easily adjust it to your particular coding guidelines and the environment you expect your code to execute in.
The project originally started as an effort to make a more configurable version of JSLint—the one that doesn’t enforce one particular coding style on its users—but then transformed into a separate static analysis tool with its own goals and ideals.
Why static code analysis tool?
JSHint uses a Pratt parser implementation written by Douglas Crockford to scan your program.
Please note, that while static code analysis tools can spot many different kind of mistakes, it can’t detect if your program is correct, fast or has memory leaks. You should always combine tools like JSHint with unit and functional tests as well as with code reviews.