JSHint
suggest changeJSHint is an open source tool which detects errors and potential problems in JavaScript code.
To lint your JavaScript you have two options.
- Go to JSHint.com and paste your code in there on line text editor.
- Install JSHint in your IDE.
- Atom: [linter-jshint](https://github.com/AtomLinter/linter-jshint) (must have [Linter](https://github.com/steelbrain/linter) plugin installed)
- Sublime Text: [JSHint Gutter](https://github.com/victorporof/Sublime-JSHint) and/or [Sublime Linter](https://github.com/SublimeLinter/SublimeLinter-for-ST2)
- Vim: [jshint.vim](https://github.com/walm/jshint.vim) or [jshint2.vim](https://github.com/Shutnik/jshint2.vim)
- Visual Studio: [VSCode JSHint](https://github.com/Microsoft/vscode-jshint)
A benefit of adding it to your IDE is that you can create a JSON configuration file named .jshintrc
that will be used when linting your program. This is convent if you want to share configurations between projects.
Example .jshintrc
file
{
"-W097": false, // Allow "use strict" at document level
"browser": true, // defines globals exposed by modern browsers http://jshint.com/docs/options/#browser
"curly": true, // requires you to always put curly braces around blocks in loops and conditionals http://jshint.com/docs/options/#curly
"devel": true, // defines globals that are usually used for logging poor-man's debugging: console, alert, etc. http://jshint.com/docs/options/#devel
// List global variables (false means read only)
"globals": {
"globalVar": true
},
"jquery": true, // This option defines globals exposed by the jQuery JavaScript library.
"newcap": false,
// List any global functions or const vars
"predef": [
"GlobalFunction",
"GlobalFunction2"
],
"undef": true, // warn about undefined vars
"unused": true // warn about unused vars
}
JSHint also allows configurations for specific lines/blocks of code
switch(operation)
{
case '+'
{
result = a + b;
break;
}
// JSHint W086 Expected a 'break' statement
// JSHint flag to allow cases to not need a break
/* falls through */
case '*':
case 'x':
{
result = a * b;
break;
}
}
// JSHint disable error for variable not defined, because it is defined in another file
/* jshint -W117 */
globalVariable = 'in-another-file.js';
/* jshint +W117 */
More configuration options are documented at http://jshint.com/docs/options/
Found a mistake? Have a question or improvement idea?
Let me know.
Table Of Contents