JSDoc

**JSDoc** JavaScript kaynak dosyalarına ek açıklama için kullanılan metin işaretleme dilidir. JSDoc yorumları kullanarak programcılar uygulamanın ne yaptığını yazabilir ve bunu dokümante edebilir. Bundan sonra yazılanlar farklı araçlar vasıtası ile HTML veya Zengin Metin Biçimi haline getirilir.

## Tarih
En erken Javadoc stili yazım 1999'da Netscape/Mozilla projesi olarak yayınlandı. Rhino Java ile yazılmış bir JavaScript motorudur.

JSDoc sözdizimi ve semantiği Javadoc düzenine benzer. Javadoc Java için dokümantasyan şemasıdır. JSDoc Javadoc'tan JavaScript'in dinamik davranışından dolayı farklılıklar gösterir.

## JSDoc etiketleri
Modern JSDoc'ta kullanılan popüler açıklama etiketlerinden bazıları şunlardır:
: 

## Örnek

```javascript
/**
 * Creates an instance of Circle.
 *
 * @constructor
 * @author: moi
 * @this {Circle}
 * @param {number} r The desired radius of the circle.
 */
function Circle(r) {
    /** @private */ this.radius = r;
    /** @private */ this.circumference = 2 * Math.PI * r;
}

/**
 * Creates a new Circle from a diameter.
 *
 * @param {number} d The desired diameter of the circle.
 * @return {Circle} The new Circle object.
 */
Circle.fromDiameter = function (d) {
    return new Circle(d / 2);
};

/**
 * Calculates the circumference of the Circle.
 *
 * @deprecated
 * @this {Circle}
 * @return {number} The circumference of the circle.
 */
Circle.prototype.calculateCircumference = function () {
    return 2 * Math.PI * this.radius;
};

/**
 * Returns the pre-computed circumference of the Circle.
 *
 * @this {Circle}
 * @return {number} The circumference of the circle.
 */
Circle.prototype.getCircumference = function () {
    return this.circumference;
};

/**
 * Find a String representation of the Circle.
 *
 * @override
 * @this {Circle}
 * @return {string} Human-readable representation of this Circle.
 */
Circle.prototype.toString = function () {
    return "A Circle object with radius of " + this.radius + ".";
};
```


## Kullanımda JSDoc
* Google Closure Linter ve Closure Compiler. Compiler tip bilgilerini tutarak JavaScript çıktısını optimize eder.
* Sublime Text JSDoc'a DocBlockr veya DoxyDoxygen eklentileri ile destek verir.
* JSDOc yazımı Apress book Foundation of Ajax'da uzun bir şekilde anlatılmıştır  ISBN 1-59059-582-3.
* IntelliJ IDEA, NetBeans ve RubyMine JSDoc yazımını otomatik olarak algılamaktadır.
* Eclipse IDE JSDoc yazımını anlamak için eklentiye sahiptir. Bunun yanında Eclipse tabanlı Aptana Studio ScriptDoc desteğine sahiptir. Bu JavaScript dosyalarına yorum yazılmıştır.
* Mozile, Mozilla'nın kullandığı editör JSDoc kullanmaktadır.
* Helma uygulama çatısı JSDoc kullanmaktadır.
* SproutCore dokümantasyonu JSDoc kullanarak oluşturulmuştur.
* Visual Studio, WebStorm ve daha birçok IDE JSDoc yorum stiline göre kod tamamlama özelliğine sahiptir. Böylece JSDoc yazımını kolaylaştırır.
* Açık kaynak kodlu Atom editörü de keza JSDoc desteğine sahiptir. Bunu atom-easy-jsdoc eklentisi ile yapar.
ISBN11-59059-582-3

## Kaynakça

## Dış bağlantılar
* Official JSDoc Website , kullanıma dair örnekler ve dokümantasyon
* Official JSDoc Github , güncel kod
* "Annotating JavaScript for the Closure Compiler" , Closure araçları dokümantasyonu