Print Print
Reading time 5:29

Original author(s)Douglas Crockford
Developer(s)Douglas Crockford
Initial release2002; 19 years ago (2002)
Stable release
2020-09-09 / September 9, 2020; 9 months ago (2020-09-09)
Repository Edit this at Wikidata
Written inJavaScript
Operating systemCross-platform
Available inEnglish
TypeStatic code analysis
LicenseJSLint License
Websitejslint.com Edit this on Wikidata

JSLint is a static code analysis tool used in software development for checking if JavaScript source code complies with coding rules. It is provided primarily as a browser-based web application accessible through the domain jslint.com, but there are also command-line adaptations.[1] It was created in 2002 by Douglas Crockford.[2]


The JSLint license[3] is a derivative of the MIT License.[4] The sole modification is the addition of the line "The Software shall be used for Good, not Evil."

According to the Free Software Foundation, this clause makes the license non-free.[5] The clause has also prevented JSLint-related software from being hosted on Google Code[4] and from being included in the Debian free software package repositories.[6] Because of this restriction, according to Crockford, IBM asked Crockford in 2011 for a license to do evil, such that their customers could use it.[7][8][9]


JSLint is considered by some to be the first JavaScript syntax checker.[10][11] It has since inspired various other tools.

In 2011, Anton Kovalyov created a fork, called JSHint.[12][13][14] The main motivation behind the creation of JSHint was to provide a "less opinionated" and "more configurable" way for developers to analyse code.[15][16][17]

In 2013, Nicholas C. Zakas created ESLint.[11] Both JSLint and JSHint lacked the ability to create additional rules for code quality and coding style. After contributing to JSHint, Zakas decided to create a new linting tool, ESLint, where all rules are configurable, and additional rules can be defined or loaded at run-time.[18] ESLint also supports linting the latest versions of JavaScript, aka ECMAScript 2015 and above.

In 2014, Marat Dulin created JSCS.[19] In 2016, the JSCS Team joined the ESLint project and has since discontinued maintenance of the JSCS tool.[20][21][22]

In 2015, a comparison published by SitePoint, recommended ESLint above JSLint, JSHint and JSCS.[23] In 2016, CodeKit also praised ESLint for "finding more issues", being "far more configurable", and being "the industry standard" for JavaScript syntax checkers.[10]

In 2016, Palantir Technologies created TSLint,[24] which is the TypeScript equivalent for ESLint.[25] It was deprecated in favor of ESLint with a TypeScript integration in 2019.[26]


  1. ^ "JSLint from the Command Line". www.hacksparrow.com. January 2013. Retrieved 2018-02-26.
  2. ^ "first commit". GitHub. 2010-11-12. Retrieved 2018-02-25. Copyright 2002 Douglas Crockford. All Rights Reserved Wrrrldwide and Beyond!
  3. ^ JSLint source file, including license
  4. ^ a b "JSMin isn't welcome on Google Code". wonko.com. Ryan Grove. 2008-12-08. Retrieved 2018-02-26.
  5. ^ "Various Licenses and Comments About Them". Free Software Foundation.
  6. ^ Re: The Software shall be used for Good, not Evil.
  7. ^ "IBM and its minions ..." Hasen Judy. 2011-02-13. Archived from the original on 2013-02-03. Retrieved 2018-02-26.
  8. ^ "Douglas Crockford: The JSON Saga". YouTube. 2011-08-11. Retrieved 2018-02-25. I give permission for IBM, its customers, partners, and minions, to use JSLint for evil.
  9. ^ The JSON Saga by Douglas Crockford
  10. ^ a b "Help: JSLint". codekitapp.com. 2016-12-10. Archived from the original on 2018-02-26. Retrieved 2018-02-25. JSLint is the original JavaScript syntax checker.
  11. ^ a b Zakas, Nicholas C. (16 July 2013). "Introducing ESLint". nczonline.net. Retrieved 2018-02-26. JSLint was the state of the art in JavaScript linting technology
  12. ^ "Why I forked JSLint to JSHint". anton.kovalyov.net. Anton Kovalyov. 2011-02-20. Archived from the original on 2011-02-24. Retrieved 2018-02-26. [JSLint] has gotten uncomfortably opinionated
  13. ^ "JSHint: A Community Driven Fork of JSLint". badassjs.com. Devon Govett. 18 February 2011. Archived from the original on 21 February 2011. Retrieved 2011-02-21. [..] JSLint was getting a bit too opinionated [..]
  14. ^ "Help: JSHint". codekitapp.com. 2018-02-26. Retrieved 2018-02-26. designed to be less opinionated and more configurable
  15. ^ Elliot, Ian (21 February 2011). "JSHint - the (gentler) JavaScript code quality tool". www.i-programmer.info. Archived from the original on 2011-02-23. Retrieved 2018-02-26.
  16. ^ Zakas, Nicholas C. (18 December 2017). "Tweet from Nicholas C. Zakas (@slicknet), creator of ESLint". Twitter. Retrieved 2018-02-26. JSLint complaint: not configurable enough. JSHint complaint: still not configurable enough [..]
  17. ^ "JSLint vs JSHint". Scott Logic. Retrieved 2018-02-26.
  18. ^ "Understanding the Real Advantages of Using ESLint". Rangle.io Blog. 2015-03-26. Retrieved 2018-02-26.
  19. ^ Dulin (@mdevils), Marat (21 April 2014). "JSCS: JavaScript Code Style — Frontend Babel". frontendbabel.info. Retrieved 2018-02-26.
  20. ^ "Welcoming JSCS To ESLint". ESLint - Pluggable JavaScript linter. Retrieved 2018-02-26.
  21. ^ "JSCS End of Life". ESLint - Pluggable JavaScript linter. Retrieved 2018-02-26.
  22. ^ "Future of Typescript Linting". ESLint.
  23. ^ Hartikainen, Jani (2015-03-05). "A Comparison of JavaScript Linting Tools". SitePoint. Retrieved 2018-02-26.
  24. ^ "TSlint npm registry".
  25. ^ "TSLint Github repository".
  26. ^ "TSLint in 2019".

Further reading

  • Doernhoefer, Mark (2006). "JavaScript". SIGSOFT Softw. Eng. Notes. 31 (4): 16–24. doi:10.1145/1142958.1142972. Retrieved 2010-03-12.
  • Appendix C of Crockford, Douglas (May 2008). JavaScript: The Good Parts (1 ed.). O'Reilly Media. ISBN 0-596-51774-2.
  • Section 'Performing JavaScript Syntax Checking with JSLint', Pages 143-145 of Asleson, Ryan; Nathaniel T. Schutta (2005-10-14). Foundations of Ajax (1 ed.). Apress. ISBN 1-59059-582-3.

External links

By: Wikipedia.org
Edited: 2021-06-18 12:30:48
Source: Wikipedia.org