Article · Wikipedia archive · Last revised Jun 16, 2026

JSDoc

JSDoc is a markup language used to annotate and document JavaScript code. The comments can be processed by tools to produce documentation in formats such as HTML. The JSDoc specification is released under CC BY-SA 3.0, while its companion documentation generator and parser library is licensed under the Apache License 2.0.

Last revised
Jun 16, 2026
Read time
≈ 3 min
Length
611 w
Citations
8
Source
Initial release1999 (1999)
Latest release
4.0.41 Edit this on Wikidata
19 October 2024 (19 October 2024)
Type of formatProgramming documentation Format
Contained byJavaScript source files
Extended fromJavaDoc
Open format?Yes
Websitejsdoc.app

JSDoc is a markup language used to annotate and document JavaScript code. The comments can be processed by tools to produce documentation in formats such as HTML. The JSDoc specification is released under CC BY-SA 3.0, while its companion documentation generator and parser library is licensed under the Apache License 2.0.2

History

JSDoc's syntax and semantics are similar to those of the Javadoc scheme, which is used for documenting code written in Java. JSDoc differs from Javadoc, in that it is specialized to handle JavaScript's dynamic behaviour.3

An early example using a Javadoc-like syntax to document JavaScript was released in 1999 with the Netscape/Mozilla project Rhino, a JavaScript run-time system written in Java. It included a toy "JSDoc" HTML generator, versioned up to 1.3, as an example of its JavaScript capabilities.4

All main generations of "JSDoc" were headed by Michael Mathews. He started with JSDoc.pm in 2001, a simple system written in Perl. Later, with contributions by Canadian programmer Gabriel Reid. It was hosted on SourceForge in a CVS repository.5 By JSDoc 1.0 (2007) he rewrote the system in JavaScript (again for Rhino), and after a set of expansions JSDoc 2.0 (2008) gained the name "jsdoc-toolkit". Released under the MIT License, it was hosted in a Subversion repository on Google Code.6 By 2011 he had refactored the system into JSDoc 3.0, dropping "-toolkit" from the name, changing to the Apache License, and hosted the result on GitHub. It now runs on Node.js.3

JSDoc tags

Some of the more popular annotation tags used in modern JSDoc are:

Tag Description
@author Developer's name
@constructor Marks a function as a constructor
@deprecated Marks a method as deprecated
@exception Synonym for @throws
@exports Identifies a member that is exported by the module
@param Documents a method parameter; a datatype indicator can be added between curly braces
@private Signifies that a member is private
@returns Documents a return value
@return Synonym for @returns
@see Documents an association to another object
@todo Documents something that is missing/open
@this Specifies the type of the object to which the keyword this refers within a function.
@throws Documents an exception thrown by a method
@version Provides the version number of a library

JSDoc in use

See also

See also

References

References

  1. "Release 4.0.4". 19 October 2024. Retrieved 22 October 2024.
  2. "jsdoc/.license-header.txt at main · jsdoc/jsdoc". GitHub. Retrieved 2026-04-23.
  3. "JSDoc". GitHub. jsdoc. 4 September 2019. Retrieved 4 September 2019.
  4. "Rhino example: jsdoc.js". GitHub. Mozilla project. May 6, 1999.
  5. "JSDoc". SourceForge. 15 April 2013. Git conversion
  6. "jsdoc-toolkit". Google Code. Git conversion
  7. "Type Checking JavaScript Files". TypeScript Documentation.
External links