æ£å¦æä»¬å¨ 代ç ç»æ ä¸ç« æäºè§£å°ç飿 ·ï¼æ³¨éå¯ä»¥æ¯ä»¥ // å¼å§çåè¡æ³¨éï¼ä¹å¯ä»¥æ¯ /* ... */ ç»æçå¤è¡æ³¨éã
æä»¬é常éè¿æ³¨éæ¥æè¿°ä»£ç ææ ·å·¥ä½å为ä»ä¹è¿æ ·å·¥ä½ã
ä¹ä¸çï¼å注éå¯è½å¾ç®åï¼ä½åå¦è å¨ç¼ç¨çæ¶åï¼ç»å¸¸é误å°ä½¿ç¨æ³¨éã
ç³ç³ç注é
æ°æå¾åäºä½¿ç¨æ³¨éæ¥è§£éâ代ç ä¸åçäºä»ä¹âãå°±åè¿æ ·ï¼
// è¿éç代ç ä¼å
åè¿ä»¶äºï¼â¦â¦ï¼ç¶ååé£ä»¶äºï¼â¦â¦ï¼
// â¦â¦è°ç¥éè¿æä»ä¹â¦â¦
very;
complex;
code;
ä½å¨å¥½ç代ç ä¸ï¼è¿ç§âè§£éæ§âæ³¨éçæ°éåºè¯¥æ¯æå°çãä¸¥æ ¼å°è¯´ï¼å°±ç®æ²¡æå®ä»¬ï¼ä»£ç ä¹åºè¯¥å¾å®¹æçè§£ã
å ³äºè¿ä¸ç¹æä¸ä¸ªå¾æ£çååï¼â妿代ç ä¸å¤æ¸ æ°ä»¥è³äºéè¦ä¸ä¸ªæ³¨éï¼é£ä¹æè®¸å®åºè¯¥è¢«éåãâ
é æ¹ï¼åè§£å½æ°
ææ¶åï¼ç¨ä¸ä¸ªå½æ°æ¥ä»£æ¿ä¸ä¸ªä»£ç çæ®µæ¯æ´å¥½çï¼å°±åè¿æ ·ï¼
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;
}
ç°å¨æä»¬å¯ä»¥å¾å®¹æå°ç解代ç äºã彿°èªå·±å°±åæäºä¸ä¸ªæ³¨éãè¿ç§ä»£ç 被称为 èªæè¿°å 代ç ã
é æ¹ï¼åå»ºå½æ°
妿æä»¬æä¸ä¸ªåä¸é¢è¿æ ·å¾é¿ç代ç åï¼
// å¨è¿éæä»¬æ·»å å¨å£«å¿ï¼è¯æ³¨ï¼å½å¤çä¸ç§é
ï¼
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 ææ¡£ãä½ å¯ä»¥å¨ https://jsdoc.app é 读æ´å¤å ³äº JSDoc çä¿¡æ¯ã
- 为ä»ä¹ä»»å¡ä»¥è¿ç§æ¹å¼è§£å³ï¼
-
åäºä»ä¹ä»£ç å¾éè¦ã使¯ä¸ºä»ä¹ ä¸ é£æ ·åå¯è½å¯¹äºçè§£æ£å¨åçä»ä¹æ´éè¦ã为ä»ä¹ä»»å¡æ¯éè¿è¿ç§æ¹å¼è§£å³çï¼ä»£ç 并没æç»åºçæ¡ã
妿æå¾å¤ç§æ¹æ³é½å¯ä»¥è§£å³è¿ä¸ªé®é¢ï¼ä¸ºä»ä¹å忝è¿ä¸ç§ï¼å°¤å ¶å½å®ä¸æ¯ææ¾èæè§çé£ä¸ç§çæ¶åã
没æè¿æ ·ç注éçè¯ï¼å°±å¯è½ä¼åçä¸é¢çæ åµï¼
- ä½ ï¼æè ä½ çåäºï¼æå¼äºå䏿®µæ¶é´åç代ç ï¼çå°å®ä¸æ¯æçæ³çå®ç°æ¹å¼ã
- ä½ ä¼æ³ï¼âæå½æ¶æ¯æå¤è ¢åï¼ç°å¨æçæ¯å¤ªèªæäºâï¼ç¶åç¨âæ´æ¾èæè§ä¸æ£ç¡®çâæ¹å¼éåäºä¸éã
- â¦â¦éåçè¿è¡å²å¨å²æ¯å¥½çã使¯å¨éåçè¿ç¨ä¸ä½ åç°âæ´æ¾èæè§âçè§£å³æ¹æ¡å®é 䏿¯æç¼ºé·çãä½ çè³ä¾ç¨å°æ³èµ·äºä¸ºä»ä¹ä¼è¿æ ·ï¼å ä¸ºä½ å¾ä¹ ä¹å就已ç»å°è¯è¿è¿æ ·åäºãäºæ¯ä½ åè¿åäºé£ä¸ªæ£ç¡®çå®ç°ï¼ä½æ¯æ¶é´å·²ç»æµªè´¹äºã
è§£å³æ¹æ¡ç注éé常çéè¦ãå®ä»¬å¯ä»¥å¸®å©ä½ 以æ£ç¡®çæ¹å¼ç»§ç»å¼åã
- ä»£ç æåªäºå·§å¦çç¹æ§ï¼å®ä»¬è¢«ç¨å¨äºä»ä¹å°æ¹ï¼
-
妿代ç åå¨ä»»ä½å·§å¦å䏿¾èæè§çæ¹æ³ï¼é£ç»å¯¹éè¦æ³¨éã
æ»ç»
ä¸ä¸ªå¥½çå¼åè çæ å¿ä¹ä¸å°±æ¯ä»ç注éï¼å®ä»¬çåå¨çè³å®ä»¬ç缺å¸ï¼è¯æ³¨ï¼å¨è¯¥æ³¨éçå°æ¹æ³¨éï¼å¨ä¸éè¦æ³¨éçå°æ¹å䏿³¨éï¼çè³åå¾å¥½çèªæè¿°å½æ°æ¬èº«å°±æ¯ä¸ç§æ³¨éï¼ã
å¥½çæ³¨éå¯ä»¥ä½¿æä»¬æ´å¥½å°ç»´æ¤ä»£ç ï¼ä¸æ®µæ¶é´ä¹åä¾ç¶å¯ä»¥æ´é«æå°åå°ä»£ç 髿å¼åã
注éè¿äºå 容ï¼
- æ´ä½æ¶æï¼é«å±æ¬¡çè§ç¹ã
- 彿°çç¨æ³ã
- éè¦çè§£å³æ¹æ¡ï¼ç¹å«æ¯å¨ä¸æ¯å¾ææ¾æ¶ã
é¿å 注éï¼
- æè¿°â代ç å¦ä½å·¥ä½âåâ代ç åäºä»ä¹âã
- é¿å å¨ä»£ç å·²ç»è¶³å¤ç®åæä»£ç æå¾å¥½çèªæè¿°æ§èä¸éè¦æ³¨éçæ åµä¸ï¼è¿åäºæ²¡å¿ è¦ç注éã
注éä¹è¢«ç¨äºä¸äºå¦ JSDoc3 çææ¡£èªå¨çæå·¥å ·ï¼å®ä»¬è¯»å注éç¶åçæ HTML ææ¡£ï¼æè å ¶ä»æ ¼å¼çææ¡£ï¼ã
è¯è®º
<code>æ ç¾æå ¥åªæå 个è¯ç代ç ï¼æå ¥å¤è¡ä»£ç å¯ä»¥ä½¿ç¨<pre>æ ç¾ï¼å¯¹äºè¶ è¿ 10 è¡ç代ç ï¼å»ºè®®ä½ ä½¿ç¨æ²ç®±ï¼plnkrï¼JSBinï¼codepenâ¦ï¼