ì½ë 구조ìì ìì본 ë°ì ê°ì´ í ì¤ì§ë¦¬ 주ìì //ë¡, ì¬ë¬ ì¤ì 주ìì /* ... */ë¡ ììí©ëë¤.
주ì(comment)ì ì´ë»ê² ì½ëê° ëìíëì§, ì ì½ëê° ëìíëì§ë¥¼ ì¤ëª íë ë° ì°ì ëë¤.
주ìì ìì±íë ê² ì¬ì ë³´ì¼ ì ìëë°, ì´ë³´ ê°ë°ìë¤ì ì¢ ì¢ ì못ë ë°©ë²ì¼ë¡ 주ìì ìì±íë ì¤ì를 ë²í©ëë¤.
ì¢ì§ ìì 주ì
ì´ì¬ìë¤ì 주ìì 'ì½ëìì ë¬´ì¨ ì¼ì´ ì¼ì´ëëì§âì ëí ë´ì©ì ì 곤 í©ëë¤. ìëì ê°ì´ ë§ì´ì£ .
// ì´ ì½ëë (...)ê³¼ (...)ì ìíí©ëë¤
// Aë¼ë ê°ë°ìê° ì´ ê¸°ë¥ì ëí´ ìê³ ìì¼ë©°...
very;
complex;
code;
ê·¸ë¬ë ì¢ì ì½ëì âì¤ëª ì´ ë´ê¸´(explanatory)â 주ìì´ ë§ìì ì ë©ëë¤. 주ì ìì´ ì½ë ìì²´ë§ì¼ë¡ ì½ëê° ë¬´ì¨ ì¼ì íëì§ ì½ê² ì´í´í ì ìì´ì¼ í©ëë¤.
ì´ì ê´ë ¨ë ì¢ì ê·ì¹ë ììµëë¤. âì½ëê° ë¶ë¶ëª í´ì 주ì ìì±ì´ ë¶ê°í¼íë¤ë©´ ì½ë를 ë¤ì ìì±í´ì¼ íë ì§ê²½ì ì´ë¥¸ 걸 ì ììµëë¤.â
리í©í ë§ í: í¨ì ë¶ë¦¬í기
í¨ì ë´ ì½ë ì¼ë¶ë¥¼ ìë¡ì´ í¨ìë¡ ì®ê¸°ë ê² ì ìµí ëë ììµëë¤. ìëì ê°ì´ ë§ì´ì£ .
function showPrimes(n) {
nextPrime:
for (let i = 2; i < n; i++) {
// iê° ììì¸ì§ë¥¼ íì¸í¨
for (let j = 2; j < i; j++) {
if (i % j == 0) continue nextPrime;
}
alert(i);
}
}
ì½ë ì¼ë¶ë¥¼ í¨ì isPrimeì¼ë¡ ì®ê¸°ë©´ ë ëì ì½ë를 ìì±í ì ììµëë¤.
function showPrimes(n) {
for (let i = 2; i < n; i++) {
if (!isPrime(i)) continue;
alert(i);
}
}
function isPrime(n) {
for (let i = 2; i < n; i++) {
if (n % i == 0) return false;
}
return true;
}
í¨ì ì´ë¦ ìì²´ê° ì£¼ì ìí ì íë¯ë¡ ì½ë를 ì½ê² ì´í´í ì ìê² ëììµëë¤. ì´ë° ì½ë를 ì기 ì¤ëª ì ì¸(self-descriptive) ì½ëë¼ ë¶ë¦ ëë¤.
리í©í ë§ í: í¨ì ë§ë¤ê¸°
ìëì ê°ì´ ì½ëê° âìëë¡ ì£½ ëì´ì ¸ ìëâ ê²½ì°ë¥¼ ìê°í´ ë´ ìë¤.
// ìì¤í¤ë¥¼ ëí´ì¤
for(let i = 0; i < 10; i++) {
let drop = getWhiskey();
smell(drop);
add(drop, glass);
}
// 주ì¤ë¥¼ ëí´ì¤
for(let t = 0; t < 3; t++) {
let tomato = getTomato();
examine(tomato);
let juice = press(tomato);
add(juice, glass);
}
// ...
ì´ë´ ë ìë¡ì´ í¨ì를 ë§ë¤ê³ , ì½ë ì¼ë¶ë¥¼ ìë¡ ë§ë í¨ìì ì®ê¸°ë ê² ì¢ìµëë¤. ìëì ê°ì´ ë§ì´ì£ .
addWhiskey(glass);
addJuice(glass);
function addWhiskey(container) {
for(let i = 0; i < 10; i++) {
let drop = getWhiskey();
//...
}
}
function addJuice(container) {
for(let t = 0; t < 3; t++) {
let tomato = getTomato();
//...
}
}
í¨ìë 주ìì´ ìì´ë ê·¸ ì¡´ì¬ ìì²´ê° ë¬´ì¨ ìí ì íëì§ ì¤ëª í ì ìì´ì¼ í©ëë¤. ì½ë를 ë¶ë¦¬í´ ìì±íë©´ ë ëì ì½ë êµ¬ì¡°ê° ëì£ . ì´ë° ê°ì´ë를 ì ì§ì¼ ì½ë를 ìì±íë©´ í¨ìê° ì´ë¤ ëìì íëì§, 무ìì ë°ê³ 무ìì ë°ííëì§ê° ëª íí´ì§ëë¤.
ê·¸ë°ë° ì¤ë¬´ìì , âì¤ëª ì´ ë´ê¸´â 주ìì ìì±íë ê² ë¶ê°í¼í ê²½ì°ë ììµëë¤. ìê³ ë¦¬ì¦ì´ ë³µì¡í ì½ë를 ìì±íë ê²½ì°ë ìµì í를 ìí´ ì½ë를 ì½ê° ë¹íì´ ìì±í ë ì¤ëª ì ì ì´ì£¼ì´ì¼ í©ëë¤. ì´ë° ê²½ì°ë¥¼ ì ì¸í곤 ê°ê²°íê³ ì½ë ìì²´ë§ì¼ë¡ ì¤ëª ì´ ê°ë¥íê² ì½ë©í´ì¼ í©ëë¤.
ì¢ì 주ì
ì¤ëª ì´ ë´ê¸´ 주ìì ëê° ì¢ì§ ììµëë¤. ê·¸ë¼ ì¢ì 주ìì´ë 무ìì¼ê¹ì?
- ìí¤í ì²ë¥¼ ì¤ëª íë 주ì
- ê³ ì°¨ì ìì¤ ì»´í¬ëí¸ ê°ì, ì»´í¬ëí¸ ê° ìí¸ìì©ì ëí ì¤ëª , ìí©ì ë°ë¥¸ ì ì´ íë¦ ë±ì 주ìì ë£ë ê² ì¢ìµëë¤. ì´ë° 주ìì ì¡°ê°ë ìí ì í´ì¤ëë¤. ê³ ì°¨ì ìì¤ì ìí¤í ì² ë¤ì´ì´ê·¸ë¨ì 그리ë ë° ì°ì´ë ì¸ì´ì¸ UMLë ìê°ì ë´ì´ ê³µë¶í´ ë³´ë걸 ì¶ì²í´ ë립ëë¤.
- í¨ì ì©ë¡ì 매ê°ë³ì ì 보를 ë´ê³ ìë 주ì
- JSDocì´ë¼ë í¹ë³í 문ë²ì ì¬ì©íë©´ í¨ìì ê´í 문ì를 ì½ê² ìì±í ì ììµëë¤. ì¬ê¸°ì í¨ì ì©ë¡, 매ê°ë³ì, ë°í ê° ì ë³´ê° ë¤ì´ê°ëë¤.
ìì:
/**
* x를 në² ê³±í ì를 ë°íí¨
*
* @param {number} x ê±°ëì ê³±í ì«ì
* @param {number} n ê³±í íì, ë°ëì ìì°ìì¬ì¼ í¨
* @return {number} xì n ê±°ëì ê³±ì ë°íí¨
*/
function pow(x, n) {
...
}
ì´ë ê² ì£¼ìì ë¬ë©´ ì½ë를 ì½ì´ë³´ì§ ìê³ ë í¨ìì 목ì ê³¼ ì¬ì©ë²ì íëì ì ì ììµëë¤.
WebStorm ë±ì ë¤ìí ìëí°ë ì´ë° 주ìì ì´ì©í´ ìë ìì± ê¸°ë¥, ìë ìë¬ ê²ì¶ ê¸°ë¥ ë±ì ì ê³µí©ëë¤.
JSDoc 3ì´ë 기í ì ì¬í í´ì ì¬ì©íë©´ 주ìì¼ë¡ HTML 문ì를 ë§ë¤ ì ììµëë¤. ìì¸í ì ë³´ë http://usejsdoc.org/ìì íì¸íì기 ë°ëëë¤.
- ì ì´ë° ë°©ë²ì¼ë¡ 문ì 를 í´ê²°íëì§ë¥¼ ì¤ëª íë 주ì
-
무ìì´ ì íìëì§ë ì¤ìí©ëë¤. ê·¸ë°ë° ë¬´ì¨ ì¼ì´ ì¼ì´ëê³ ìëì§ íì íë ¤ë©´ 무ìì´ ì íìì§ ìì ì§ê° ë ì¤ìí ì ììµëë¤. 'ì ì´ ë¬¸ì 를 ì´ë° ë°©ë²ì¼ë¡ í´ê²°íë?'ë¼ë ì§ë¬¸ì ì½ëë ëµì í´ ì¤ ì ì기 ë문ì ëë¤.
문ì í´ê²° ë°©ë²ì´ ì¬ë¬ ê°ì§ì¸ë° ì ííì´ë©´ ì´ ë°©ë²ì ííëì§ ìë¬¸ì´ ë¤ ëê° ììµëë¤. ì íí ë°©ë²ì´ ê°ì¥ ëì ê²ë ìëë° ë§ì´ì£ .
ì ì´ë° ë°©ë²ì ì¨ì 문ì 를 í´ê²°íëì§ ìë ¤ì£¼ë 주ìì´ ìì¼ë©´ ë¤ìê³¼ ê°ì ì¼ì´ ë°ìí ì ììµëë¤.
- ë¹ì (í¹ì ëë£)ì ìì±ë í ìê°ì´ 꽤 í른 ì½ë를 ì´ì´ë´ ëë¤. ê·¸ë¦¬ê³ ê·¸ ì½ëìì ì íí ë°©ìì´ âê°ì¥ ì¢ì ë°©ìì ìëë 걸â ììë ëë¤.
- "ê·¸ëë ë´ê° ë©ì²í구ë. íì§ë§ ì§ê¸ì ë ëëí´ì¡ì§"ë¼ê³ ìê°íë©°, ì´ì ë³´ë¨ âë ëª ííê³ ì¬ë°ë¥¸â ë°©ë²ì¼ë¡ ì½ë를 ê°ì í©ëë¤.
- ì½ë를 ê°ì íë ¤ë ìëê¹ì§ë ì¢ììµëë¤. íì§ë§ 리í©í ë§ ê³¼ì ìì 'ë ëª íâíë¤ê³ ìê°íë ë°©ë²ì ì ì©íë©´ 문ì ê° ë°ìíë¤ë 걸 ììë ëë¤. ì´ë¯¸ ìëí´ë´¤ë ë°©ë²ì´ê¸° ë문ì ì ì´ ë°©ë²ì´ 먹íì§ ìëì§ í¬ë¯¸íê² ê¸°ìµì´ ë ì¤ë¦ ëë¤. ìë¡ ìì±í ì½ë를 ëëë ¸ì§ë§, ìê°ì´ ëë¹ëììµëë¤.
í´ê²° ë°©ë²ì ë´ê³ ìë 주ìì ì주 ì¤ìí ìí ì í©ëë¤. ì´ì ì íë ì¤ì를 ë°©ì§íë ìë´í ìí ì í기 ë문ì ëë¤.
- 미ë¬í 기ë¥ì´ ìê³ , ì´ ê¸°ë¥ì´ ì´ëì ì°ì´ëì§ë¥¼ ì¤ëª íë 주ì
-
ì§ê°ì ë°íë 미ë¬í ëìì ìííë ì½ëê° ìë¤ë©´ 주ìì ë¬ì주ë ê² ì¢ìµëë¤.
ìì½
주ìì ë³´ë©´ ì¢ì ê°ë°ìì¸ì§ ìëì§ë¥¼ ì´ë ì ë ì ì ììµëë¤. 주ìì ì¸ì ì°ê³ ì¸ì ì°ì§ ìëì§ë¥¼ ë³´ë©´ ëì£ .
주ìì ì ìì±í´ ëì¼ë©´ ìê°ì´ ì§ë í ì½ë를 ë¤ì ì´í´ë³¼ ë í¨ì¨ì ì¼ë¡ ì 보를 ì»ì ì ììµëë¤. ì½ë ì ì§ë³´ìì ëìì´ ëì£ .
주ìì ë¤ì´ê°ë©´ ì¢ì ë´ì©
- ê³ ì°¨ì ìì¤ ìí¤í ì²
- í¨ì ì©ë¡
- ë¹ì¥ ë´ì ëª íí´ ë³´ì´ì§ ìë í´ê²° ë°©ë²ì ëí ì¤ëª
주ìì ë¤ì´ê°ë©´ ì¢ì§ ìì ë´ì©
- 'ì½ëê° ì´ë»ê² ëìíëì§âì 'ì½ëê° ë¬´ìì íëì§âì ëí ì¤ëª
- ì½ë를 ê°ê²°íê² ì§¤ ì ìë ìí©ì´ë ì½ë ìì²´ë§ì¼ë¡ë ì´ë¤ ì¼ì íëì§ ì¶©ë¶í íë¨í ì ìë ê²½ì°ìë§ ì£¼ìì ë£ì¼ì¸ì.
주ìì JSDoc3 ê°ì ìë 문ììì± ë구ìë ì°ì ëë¤. ìë 문ììì± ë구ë 주ìì ì´ì©í´ HTML ë±ì í¬ë§·ì ê°ì§ 문ì를 ìëì¼ë¡ ë§ë¤ì´ì¤ëë¤.
ëê¸
<code>í그를, ì¬ë¬ ì¤ë¡ 구ì±ë ì½ë를 ì½ì íê³ ì¶ë¤ë©´<pre>í그를 ì´ì©íì¸ì. 10ì¤ ì´ìì ì½ëë plnkr, JSBin, codepen ë±ì ìëë°ì¤ë¥¼ ì¬ì©íì¸ì.