<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=JSLint</id>
	<title>JSLint - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=JSLint"/>
	<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=JSLint&amp;action=history"/>
	<updated>2026-07-15T16:08:57Z</updated>
	<subtitle>在这个wiki上该页的修订历史</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://arolstar52-zhtest.hf.space/index.php?title=JSLint&amp;diff=4031243&amp;oldid=prev</id>
		<title>imported&gt;InternetArchiveBot：​补救19个来源，并将0个来源标记为失效。) #IABot (v2.0.9.3</title>
		<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=JSLint&amp;diff=4031243&amp;oldid=prev"/>
		<updated>2023-01-20T21:19:49Z</updated>

		<summary type="html">&lt;p&gt;补救19个来源，并将0个来源标记为失效。) #IABot (v2.0.9.3&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{NoteTA|G1=IT}}&lt;br /&gt;
{{Infobox software&lt;br /&gt;
| logo                   = [[File:Jslint logo 512x512 v2022.5.3 svg.svg|128px]]&lt;br /&gt;
| name                   = JSLint&lt;br /&gt;
| title                  = JSLint&lt;br /&gt;
| author                 = [[道格拉斯·克羅克福特]]&lt;br /&gt;
| developer              = [[道格拉斯·克羅克福特]]&lt;br /&gt;
| released               = {{Start date and age|2002}}&lt;br /&gt;
| latest release version = v2022.3.30&lt;br /&gt;
| latest release date    = {{Start date and age|2022|03|30}}&lt;br /&gt;
| programming language   = [[JavaScript]]&lt;br /&gt;
| operating system       = [[跨平臺]]&lt;br /&gt;
| language               = 英文&lt;br /&gt;
| genre                  = [[靜態程式分析]]&lt;br /&gt;
| license                = {{tsl|en|Unlicense|}}&lt;br /&gt;
| website                = {{URL|https://www.jslint.com}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;JSLint&amp;#039;&amp;#039;&amp;#039;是一個在[[软件开发]]中確認[[JavaScript]][[源代码]][[代码风格]]的[[靜態程序分析]]，可透過[[网络应用程序]]jslint.com及[[命令行界面]]來進行分析&amp;lt;ref&amp;gt;{{Cite web|url=https://www.hacksparrow.com/jslint-from-the-command-line.html|title=JSLint from the Command Line|date=January 2013|website=www.hacksparrow.com|access-date=2018-02-26|archive-date=2018-02-27|archive-url=https://web.archive.org/web/20180227034307/https://www.hacksparrow.com/jslint-from-the-command-line.html|dead-url=yes}}&amp;lt;/ref&amp;gt;，由[[道格拉斯·克羅克福特]]於2002年建立&amp;lt;ref&amp;gt;{{Cite web|url=https://github.com/douglascrockford/JSLint/commit/ca120a731db548c0014320fa0c196edc613536ae|title=first commit|date=2010-11-12|website=GitHub|access-date=2018-02-25|quote=Copyright 2002 Douglas Crockford. All Rights Reserved Wrrrldwide and Beyond!|archive-date=2021-04-13|archive-url=https://web.archive.org/web/20210413183901/https://github.com/douglascrockford/JSLint/commit/ca120a731db548c0014320fa0c196edc613536ae|dead-url=no}}&amp;lt;/ref&amp;gt;。&lt;br /&gt;
&lt;br /&gt;
== 授權條款 ==&lt;br /&gt;
JSLint曾使用由[[MIT許可證]]衍伸而來的JSLint許可證&amp;lt;ref&amp;gt;{{Cite web|url=https://raw.github.com/douglascrockford/JSLint/master/jslint.js|title=JSLint source file, including license|access-date=2022-07-12|archive-date=2013-06-09|archive-url=https://web.archive.org/web/20130609144601/https://raw.github.com/douglascrockford/JSLint/master/jslint.js|dead-url=yes}}&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;google-jsmin&amp;quot;&amp;gt;{{Cite web|url=http://wonko.com/post/jsmin-isnt-welcome-on-google-code|title=JSMin isn&amp;#039;t welcome on Google Code|date=2008-12-08|website=wonko.com|publisher=Ryan Grove|access-date=2018-02-26|archive-date=2023-01-14|archive-url=https://web.archive.org/web/20230114224625/https://wonko.com/post/jsmin-isnt-welcome-on-google-code/|dead-url=no}}&amp;lt;/ref&amp;gt;，兩者的差別在於JSLint許可證多出了一句話&amp;quot;&amp;#039;&amp;#039;The Software shall be used for Good, not Evil.&amp;#039;&amp;#039;&amp;quot;。&lt;br /&gt;
&lt;br /&gt;
根據自由软件基金会的說法，該條款使JSLint變相成為[[专有软件]]&amp;lt;ref&amp;gt;{{cite web|title=Various Licenses and Comments About Them|url=https://www.gnu.org/licenses/license-list.html#JSON|publisher=Free Software Foundation|access-date=2022-07-12|archive-date=2010-07-24|archive-url=https://web.archive.org/web/20100724023833/https://www.gnu.org/licenses/license-list.html#JSON|dead-url=no}}&amp;lt;/ref&amp;gt;。此條款同時阻止了JSLint相關的軟體託管在[[Google開發人員|Google Code]]上&amp;lt;ref name=&amp;quot;google-jsmin&amp;quot; /&amp;gt;，也阻止了Debian自由軟體儲存庫綑綁JSLint&amp;lt;ref&amp;gt;{{Cite web|url=https://www.mail-archive.com/debian-legal@lists.debian.org/msg40718.html|title=Re: The Software shall be used for Good, not Evil.|website=www.mail-archive.com|access-date=2022-07-12|archive-date=2022-12-05|archive-url=https://web.archive.org/web/20221205123706/https://www.mail-archive.com/debian-legal%40lists.debian.org/msg40718.html|dead-url=no}}&amp;lt;/ref&amp;gt;。根據Crockford的說法，基於此一限制，[[IBM]]在2011年向Crockford申請了惡作劇用的許可證，以便其客戶可以使用JSLint&amp;lt;ref&amp;gt;{{Cite web|url=http://dev.hasenj.org/post/3272592502|title=IBM and its minions ...|date=2011-02-13|website=Hasen Judy|archive-url=https://web.archive.org/web/20130203112329/http://dev.hasenj.org/post/3272592502|archive-date=2013-02-03|access-date=2018-02-26}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Cite web|url=https://www.youtube.com/watch?v=-C-JoyNuQJs#t=2480s |archive-url=https://ghostarchive.org/varchive/youtube/20211215/-C-JoyNuQJs |archive-date=2021-12-15 |url-status=live|title=Douglas Crockford: The JSON Saga|date=2011-08-11|website=YouTube|access-date=2018-02-25|quote=&amp;quot;I give permission for IBM, its customers, partners, and minions, to use JSLint for evil.&amp;quot;}}{{cbignore}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;&amp;#039;&amp;#039;The JSON Saga&amp;#039;&amp;#039; by Douglas Crockford&amp;lt;/ref&amp;gt;。&lt;br /&gt;
&lt;br /&gt;
2021年起，JSLint改使用[[自由软件基金会]]及[[开放源代码促进会]]批准的{{tsl|en|Unlicense|}}許可證。&lt;br /&gt;
&lt;br /&gt;
== 影響 ==&lt;br /&gt;
多數人認為JSLint是第一個JavaScript語法分析器，並激發了往後其他類似工具的誕生&amp;lt;ref name=&amp;quot;:0&amp;quot;&amp;gt;{{Cite web|url=https://codekitapp.com/help/jslint/|title=Help: JSLint|date=2016-12-10|website=codekitapp.com|archive-url=https://web.archive.org/web/20180226015758/https://codekitapp.com/help/jslint/|archive-date=2018-02-26|url-status=live|access-date=2018-02-25|quote=JSLint is the original JavaScript syntax checker.}}&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;:1&amp;quot;&amp;gt;{{Cite web|url=https://www.nczonline.net/blog/2013/07/16/introducing-eslint/|title=Introducing ESLint|last=Zakas|first=Nicholas C.|date=16 July 2013|website=nczonline.net|access-date=2018-02-26|quote=JSLint was the state of the art in JavaScript linting technology|archive-date=2018-02-26|archive-url=https://web.archive.org/web/20180226092246/https://www.nczonline.net/blog/2013/07/16/introducing-eslint/|dead-url=no}}&amp;lt;/ref&amp;gt;。&lt;br /&gt;
&lt;br /&gt;
2011年，Anton Kovalyov創建了一個分支，並命名為[[JSHint]]&amp;lt;ref&amp;gt;{{Cite web|url=http://anton.kovalyov.net/2011/02/20/why-i-forked-jslint-to-jshint/|title=Why I forked JSLint to JSHint|date=2011-02-20|website=anton.kovalyov.net|publisher=Anton Kovalyov|archive-url=https://web.archive.org/web/20110224022052/http://anton.kovalyov.net/2011/02/20/why-i-forked-jslint-to-jshint/|archive-date=2011-02-24|access-date=2018-02-26|quote=[JSLint] has gotten uncomfortably opinionated}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Cite web|url=http://badassjs.com/post/3364925033/jshint-an-community-driven-fork-of-jslint|title=JSHint: A Community Driven Fork of JSLint|date=18 February 2011|website=badassjs.com|publisher=Devon Govett|archive-url=https://web.archive.org/web/20110221102102/http://badassjs.com/post/3364925033/jshint-an-community-driven-fork-of-jslint|archive-date=21 February 2011|url-status=live|access-date=2011-02-21|quote=[..] JSLint was getting a bit too opinionated [..]}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Cite web|url=https://codekitapp.com/help/jshint/|title=Help: JSHint|date=2018-02-26|website=codekitapp.com|access-date=2018-02-26|quote=designed to be less opinionated and more configurable|archive-date=2018-02-26|archive-url=https://web.archive.org/web/20180226015810/https://codekitapp.com/help/jshint/|dead-url=no}}&amp;lt;/ref&amp;gt;。作者解釋，創建JSHint的原因是想為開發人員提供一種“不那麼執著”和“更容易配置”的方式來分析代碼&amp;lt;ref&amp;gt;{{Cite web|url=http://www.i-programmer.info/news/90-tools/2024-jshint-the-gentler-javascript-code-quality-tool.html|title=JSHint - the (gentler) JavaScript code quality tool|last=Elliot|first=Ian|date=21 February 2011|website=www.i-programmer.info|archive-url=https://web.archive.org/web/20110223093520/http://www.i-programmer.info/news/90-tools/2024-jshint-the-gentler-javascript-code-quality-tool.html|archive-date=2011-02-23|url-status=live|access-date=2018-02-26}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Cite web|url=https://twitter.com/slicknet/status/942933466944901120|title=Tweet from Nicholas C. Zakas (@slicknet), creator of ESLint|last=Zakas|first=Nicholas C.|date=18 December 2017|website=Twitter|access-date=2018-02-26|quote=JSLint complaint: not configurable enough. JSHint complaint: still not configurable enough [..]|archive-date=2022-07-08|archive-url=https://web.archive.org/web/20220708151611/https://twitter.com/slicknet/status/942933466944901120|dead-url=no}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Cite news|url=http://blog.scottlogic.com/2011/03/28/jslint-vs-jshint.html|title=JSLint vs JSHint|work={{tsl|en|Scott Logic|}}|access-date=2018-02-26|archive-date=2018-02-26|archive-url=https://web.archive.org/web/20180226152017/http://blog.scottlogic.com/2011/03/28/jslint-vs-jshint.html|dead-url=no}}&amp;lt;/ref&amp;gt;。&lt;br /&gt;
&lt;br /&gt;
2013年，Nicholas C. Zakas創建了[[ESLint]]&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;。作者解釋，由於JSLint和JSHint都無法創建額外的{{tsl|en|Coding conventions|編程規範}}和[[代码风格]]規則，在為JSHint做出貢獻後，Zakas決定創建一個新的語法分析器。ESLint所有規則都是可配置的，並且可以在[[執行期]]定義或加載其他規則&amp;lt;ref&amp;gt;{{Cite news|url=http://blog.rangle.io/understanding-the-real-advantages-of-using-eslint/|title=Understanding the Real Advantages of Using ESLint|date=2015-03-26|work=Rangle.io Blog|access-date=2018-02-26|archive-date=2019-02-09|archive-url=https://web.archive.org/web/20190209232042/https://blog.rangle.io/understanding-the-real-advantages-of-using-eslint/|dead-url=no}}&amp;lt;/ref&amp;gt;。同時，ESLint還支持分析最新版本的JavaScript，即ECMAScript 2015及更高版本。&lt;br /&gt;
&lt;br /&gt;
2014年，Marat Dulin創建了“JSCS”&amp;lt;ref&amp;gt;{{Cite web|url=http://frontendbabel.info/articles/jscs-javascript-code-style/|title=JSCS: JavaScript Code Style — Frontend Babel|last=Dulin (@mdevils)|first=Marat|date=21 April 2014|website=frontendbabel.info|access-date=2018-02-26|archive-date=2021-10-18|archive-url=https://web.archive.org/web/20211018045057/https://frontendbabel.info/articles/jscs-javascript-code-style/|dead-url=no}}&amp;lt;/ref&amp;gt;。2016年，JSCS團隊併入了ESLint項目，同時停止JSCS工具的維護&amp;lt;ref&amp;gt;{{Cite web|url=https://eslint.org/blog/2016/04/welcoming-jscs-to-eslint|title=Welcoming JSCS To ESLint|website=ESLint - Pluggable JavaScript linter|access-date=2018-02-26|archive-date=2022-12-07|archive-url=https://web.archive.org/web/20221207092005/https://eslint.org/blog/2016/04/welcoming-jscs-to-eslint/|dead-url=no}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Cite web|url=https://eslint.org/blog/2016/07/jscs-end-of-life|title=JSCS End of Life|website=ESLint - Pluggable JavaScript linter|access-date=2018-02-26|archive-date=2022-11-28|archive-url=https://web.archive.org/web/20221128235156/https://eslint.org/blog/2016/07/jscs-end-of-life/|dead-url=no}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite web |title=Future of Typescript Linting |url=https://eslint.org/blog/2019/01/future-typescript-eslint |website=ESLint |access-date=2022-07-12 |archive-date=2021-04-13 |archive-url=https://web.archive.org/web/20210413204615/https://eslint.org/blog/2019/01/future-typescript-eslint |dead-url=no }}&amp;lt;/ref&amp;gt;。&lt;br /&gt;
&lt;br /&gt;
2015年，{{tsl|en|SitePoint|}}發布了一項對ESLint、JSLint、JSHint和JSCS四個項目的比較，其結果為ESLint優於其他三個語法分析器&amp;lt;ref&amp;gt;{{Cite news|url=https://www.sitepoint.com/comparison-javascript-linting-tools/|title=A Comparison of JavaScript Linting Tools|last=Hartikainen|first=Jani|date=2015-03-05|work=SitePoint|access-date=2018-02-26|archive-date=2022-12-05|archive-url=https://web.archive.org/web/20221205130920/http://www.sitepoint.com/comparison-javascript-linting-tools/|dead-url=no}}&amp;lt;/ref&amp;gt;。2016年，CodeKit還稱讚ESLint“發現了更多問題”、“可配置性更高”以及成為JavaScript語法分析器的“行業標準”&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt;。&lt;br /&gt;
&lt;br /&gt;
2016年，[[Palantir Technologies]]建立了TSLint&amp;lt;ref&amp;gt;{{Cite web|url=https://www.npmjs.com/package/tslint|title=tslint|website=npm|access-date=2022-07-12|archive-date=2023-01-02|archive-url=https://web.archive.org/web/20230102154444/https://www.npmjs.com/package/tslint|dead-url=no}}&amp;lt;/ref&amp;gt;，即[[TypeScript]]專用的ESLint&amp;lt;ref&amp;gt;{{Cite web|url=https://palantir.github.io/tslint/|title=TSLint|website=palantir.github.io|access-date=2022-07-12|archive-date=2022-12-21|archive-url=https://web.archive.org/web/20221221214353/https://palantir.github.io/tslint/|dead-url=no}}&amp;lt;/ref&amp;gt;。2019年，TSLint併入ESLint，成為ESLint的插件typescript-eslint&amp;lt;ref&amp;gt;{{Cite web|url=https://blog.palantir.com/tslint-in-2019-1a144c2317a9|title=TSLint in 2019|date=June 5, 2019|website=Medium}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Cite web|url=https://github.com/palantir/tslint/issues/4534|title=Roadmap: TSLint -&amp;gt; ESLint · Issue #4534 · palantir/tslint|website=GitHub|access-date=2022-08-15|archive-date=2023-01-16|archive-url=https://web.archive.org/web/20230116015203/https://github.com/palantir/tslint/issues/4534|dead-url=no}}&amp;lt;/ref&amp;gt;。&lt;br /&gt;
&lt;br /&gt;
== 參見 ==&lt;br /&gt;
* {{tsl|en|List of tools for static code analysis|靜態程式碼分析工具列表}}&lt;br /&gt;
&lt;br /&gt;
== 參考文獻 ==&lt;br /&gt;
{{Reflist|2}}&lt;br /&gt;
&lt;br /&gt;
== 延伸閱讀 ==&lt;br /&gt;
* {{Cite journal&lt;br /&gt;
| doi = 10.1145/1142958.1142972&lt;br /&gt;
| volume = 31&lt;br /&gt;
| issue = 4&lt;br /&gt;
| pages = 16–24&lt;br /&gt;
| last = Doernhoefer&lt;br /&gt;
| first = Mark&lt;br /&gt;
| title = JavaScript&lt;br /&gt;
| journal = SIGSOFT Softw. Eng. Notes&lt;br /&gt;
| access-date = 2010-03-12&lt;br /&gt;
| year = 2006&lt;br /&gt;
| url = http://portal.acm.org/citation.cfm?id=1142958.1142972&amp;amp;coll=Portal&amp;amp;dl=ACM&amp;amp;CFID=81676408&amp;amp;CFTOKEN=16664136&lt;br /&gt;
}}&lt;br /&gt;
* Appendix C of {{Cite book&lt;br /&gt;
| edition = 1&lt;br /&gt;
| publisher = O&amp;#039;Reilly Media&lt;br /&gt;
| isbn = 0-596-51774-2&lt;br /&gt;
| last = Crockford&lt;br /&gt;
| first = Douglas&lt;br /&gt;
| title = JavaScript: The Good Parts&lt;br /&gt;
| date = May 2008&lt;br /&gt;
| url = https://archive.org/details/javascriptgoodpa00croc_0&lt;br /&gt;
}}&lt;br /&gt;
* Section &amp;#039;Performing JavaScript Syntax Checking with JSLint&amp;#039;, Pages 143-145 of {{Cite book&lt;br /&gt;
| edition = 1&lt;br /&gt;
| publisher = Apress&lt;br /&gt;
| isbn = 1-59059-582-3&lt;br /&gt;
| last = Asleson&lt;br /&gt;
| first = Ryan&lt;br /&gt;
| author2 = Nathaniel T. Schutta&lt;br /&gt;
| title = Foundations of Ajax&lt;br /&gt;
| date = 2005-10-14&lt;br /&gt;
| url = https://archive.org/details/isbn_9781590595824&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== 外部連結 ==&lt;br /&gt;
* {{Official website|https://www.jslint.com/}}&lt;br /&gt;
&lt;br /&gt;
{{JavaScript}}&lt;br /&gt;
{{Software engineering}}&lt;br /&gt;
&lt;br /&gt;
[[Category:静态代码分析工具]]&lt;/div&gt;</summary>
		<author><name>imported&gt;InternetArchiveBot</name></author>
	</entry>
</feed>