JSHint
jshint.com
What it is
JSHint is a free, open-source static analysis tool for JavaScript. It checks code for syntax errors and potential problems such as implicit type conversion issues and leaking variables. The project aims to help JavaScript developers avoid typos and language gotchas while working on complex programs. JSHint is distributed as a Node module with a library and command-line program, and it can also be used through a JavaScript API. Configuration can come from command-line options, a .jshintrc file, package.json, or inline source directives. Standalone files are available for browser-like environments and Mozilla Rhino, with releases published to npm for Node.js. The install page lists integrations for editors and IDEs including Vim, Emacs, Sublime Text, Visual Studio, VS Code, Eclipse, and JetBrains IDEs, plus build integrations such as Grunt, Ant, Maven, pre-commit, and QUnit. JSHint is licensed under the MIT Expat license. Its documentation cautions that static analysis cannot determine whether a program is correct or fast, or whether it has memory leaks, and recommends using it alongside unit and functional tests and code reviews.
Spec sheet
- What it does
- JSHint is a community-driven static analysis tool that detects JavaScript errors and potential problems.Read 15 Oct 2026 · jshint.com
- Purpose
- JSHint is a community-driven static analysis tool that detects errors and potential problems in JavaScript code.Read 11 Oct 2026 · jshint.com
- Audience
- The project says it aims to help JavaScript developers write complex programs while avoiding typos and language gotchas.Read 11 Oct 2026 · jshint.com
- API
- JSHint can be used as a JavaScript module through its JavaScript API.Read 11 Oct 2026 · jshint.com
- Support
- The project directs users to report bugs and suggestions through GitHub Issues.Read 11 Oct 2026 · jshint.com
- License
- JSHint is licensed under the MIT Expat license.Read 11 Oct 2026 · jshint.com
- Build integrations
- Listed workflow integrations include Grunt, Ant/Maven, QUnit, pre-commit, overcommit and JSXHint.Read 15 Oct 2026 · jshint.com
- CLI input
- The CLI lints files, recursively traverses directories and accepts standard input when the path is '-'.Read 15 Oct 2026 · jshint.com
- CLI reporters
- Users can provide custom reporters or use the built-in jslint and CheckStyle-compatible reporters.Read 15 Oct 2026 · jshint.com
- Complexity checks
- The web interface includes cyclomatic-complexity reporting.Read 15 Oct 2026 · jshint.com
- Configuration
- Projects can configure JSHint with a .jshintrc file, package.json jshintConfig or the CLI --config option.Read 15 Oct 2026 · jshint.com
- Documentation depth
- Official documentation covers installation, CLI usage, API calls, options, configuration directives and custom reporters.Read 15 Oct 2026 · jshint.com
- Editor integrations
- The project lists integrations for Vim, Emacs, Sublime Text, Atom, TextMate, Visual Studio, VS Code, Brackets, Eclipse, NetBeans, JetBrains, Notepad++ and Gedit.Read 15 Oct 2026 · jshint.com
- Environment assumptions
- Preset assumptions include browser, Node.js, jQuery, development consoles, ES6, Mozilla extensions and older ES3 environments.Read 15 Oct 2026 · jshint.com
- Environments
- The project provides standalone files for browser-like environments and Mozilla Rhino, and publishes releases to npm for Node.js.Read 11 Oct 2026 · jshint.com
- Error detection
- JSHint checks for syntax errors, implicit conversion bugs, leaking variables and other common JavaScript problems.Read 15 Oct 2026 · jshint.com
- Extensibility
- Custom reporter modules receive structured error data and can print, write or send results elsewhere.Read 15 Oct 2026 · jshint.com
- GitHub adoption
- The public repository shows about 9,100 stars and 1,600 forks.Read 15 Oct 2026 · github.com
- HTML extraction
- The CLI can extract JavaScript from HTML files using auto, always or never modes.Read 15 Oct 2026 · jshint.com
- Independent feature assessment
- JavaSpring describes JSHint as configurable, community-driven, supportive of modern JavaScript and clearer in its error messages than JSLint.Read 15 Oct 2026 · javaspring.net
- Independent setup complaint
- JavaSpring notes that JSHint requires users to define rules and that overly relaxed settings can permit poor practices.Read 15 Oct 2026 · javaspring.net
- Inline directives
- Source comments can set jshint, jslint, globals, exported and ignore directives, including function-scoped settings.Read 15 Oct 2026 · jshint.com
- Installation
- Official installation supports browser-like standalone files, Mozilla Rhino, npm global installation and npm development dependencies.Read 15 Oct 2026 · jshint.com
- Latest release
- GitHub lists JSHint 2.13.6 as the latest release, dated 2022-11-11, with fixes for const initialization and an error message.Read 15 Oct 2026 · github.com
- Licence
- JSHint is released under the MIT Expat licence; versions before 2.12.0 had partially non-free JSON-licensed code.Read 15 Oct 2026 · jshint.com
- Limit: documentation and support
- G2 summaries say some users want more comprehensive documentation and perceive support quality as weaker than alternatives.Read 15 Oct 2026 · g2.com
- Limit: documentation discoverability
- A practitioner evaluation reports that finding documentation for particular error messages and disabling or customizing rules can be difficult.Read 15 Oct 2026 · code.clinic
- Limit: scale and flexibility
- The same comparison says JSHint is less flexible, lacks advanced help and is less suitable for large projects than ESLint or newer tools.Read 15 Oct 2026 · daily.dev
- Limits
- JSHint says static analysis cannot determine whether a program is correct or fast, or whether it has memory leaks.Read 11 Oct 2026 · jshint.com
- Maintainers
- The project lists Rick Waldron, Caitlin Potter, Mike Pennisi, and Luke Page as current maintainers.Read 11 Oct 2026 · jshint.com
- Mirror availability
- SourceForge hosts an exact mirror of the GitHub project and lists JSHint 2.13.6 source code as its latest mirrored download.Read 15 Oct 2026 · sourceforge.net
- NPM distribution
- The npm package page lists version 2.13.6, MIT licensing, 7 dependencies, 950 dependents and about 636,872 weekly downloads.Read 15 Oct 2026 · npmjs.com
- Official limitation
- JSHint says static analysis cannot determine whether a program is correct, fast or free of memory leaks, so tests and code reviews remain necessary.Read 15 Oct 2026 · jshint.com
- Origin
- JSHint originated as a fork of JSLint in 2010 and is maintained by named community contributors rather than a disclosed commercial company.Read 15 Oct 2026 · jshint.com
- Praise: community and code checks
- G2 summaries praise detailed code-quality checks, strong community resources and useful detection of potential errors.Read 15 Oct 2026 · g2.com
- Praise: simplicity
- A JavaScript tools comparison describes JSHint as simple, quick and lightweight for smaller projects.Read 15 Oct 2026 · daily.dev
- Public API
- The JavaScript API exposes JSHINT(source, options, predef), an errors array and JSHINT.data() reports for browser and Node.js use.Read 15 Oct 2026 · jshint.com
- Rating on G2
- 4.3 out of 5 from 12 reviews.Read 15 Oct 2026 · g2.com
- Runtime
- The core project includes a library and a command-line program distributed as a Node module.Read 11 Oct 2026 · jshint.com
- Runtime compatibility
- CanIRequire reports jshint 2.13.6 loading successfully through require and import on Node 18, 20, 22, 24 and 26 plus Bun 1.4.Read 15 Oct 2026 · canirequire.com
- Security-related warnings
- Built-in warnings cover patterns such as eval, unsafe for-in loops, caller/callee use and assignments in conditions.Read 15 Oct 2026 · jshint.com
- Support model
- Bug reports and feature requests are directed to GitHub issues and pull requests, with no paid support offering stated.Read 15 Oct 2026 · jshint.com
- Undefined-variable checks
- The web interface can report undefined variables.Read 15 Oct 2026 · jshint.com
- Unused-variable checks
- The web interface can report unused variables.Read 15 Oct 2026 · jshint.com
- Use with tests
- The project recommends combining JSHint with unit and functional tests and code reviews.Read 11 Oct 2026 · jshint.com
- Web linting
- The official site provides an online interface with configurable reports, warnings, assumptions and metrics.Read 15 Oct 2026 · jshint.com
- What it flags
- It reports issues such as syntax errors, problems from implicit type conversion, and leaking variables.Read 11 Oct 2026 · jshint.com
Plans and prices
Strong points and limits
Strong points
- Free and open source under the MIT Expat license.
- Flags syntax errors, type conversion issues, and leaking variables.
- Offers command-line, file-based, and inline configuration.
- Provides a JavaScript API and editor integrations.
- Integrates with several build tools.
Limits
- Static analysis cannot establish program correctness or speed.
- It cannot determine whether code has memory leaks.
- The project recommends additional tests and code reviews.
Who it suits
JSHint suits JavaScript developers who want configurable checks for syntax errors and common code problems. It is relevant to developers using Node.js, browser-like environments, or listed editor and build integrations.
Verdict
JSHint provides configurable JavaScript checks through several usage and integration paths at no listed cost. Treat its findings as one part of code review, not a substitute for tests or review.
Where Specifiction places it
- Linters#3 of 338.7