循ç¯å§ï¼ä»£ç
ç¼ç¨è¯è¨å¯ä»¥å¾è¿ éæ¹ä¾¿å°å¸®æä»¬å®æä¸äºé夿§çä»»å¡ï¼ä»å¤ä¸ªåºæ¬è®¡ç®å°å ä¹å®æäºå¾å¤ç±»ä¼¼å·¥ä½çå ¶ä»æ åµãç°å¨æä»¬æ¥ççå¤çè¿ç§éæ±ç JavaScript ä¸å¯ç¨ç循ç¯ç»æã
| åæï¼ | åºæ¬ççµèç¥è¯ï¼å¯¹ HTML ä¸ CSS æåºæ¬çäºè§£ï¼åå·²é è¯»ï¼ JavaScript first stepsï¼JS çå ¥é¨ï¼. |
|---|---|
| ç®æ ï¼ | å¦ä¹ å¦ä½å¨ JS éé¢ä½¿ç¨å¾ªç¯è¯å¥ã |
æ¥ä¸èµ·å¾ªç¯
循ç¯ï¼å¾ªç¯ï¼å¾ªç¯ãå°±ä¸è¿äºï¼popular breakfast cereals, roller coasters and musical production 䏿 ·ï¼ç±»ä¼¼åå¨äºç¼ç¨ä¸ãç¼ç¨ä¸ç循ç¯ä¹æ¯ä¸ç´éå¤çå»åä¸ä»¶äº - æ¤å¤å¾ªç¯ä¾¿æ¯ç¼ç¨ä¸çæ¯è¯ã
让æä»¬æ¥æ³ä¸ä¸ä¸å¾ï¼è¿ä½å夫èè为ä»çå®¶åºåä¸å¨çé£ç©è®¡åï¼ä»æè®¸å°±éè¦æ§è¡ä¸æ®µå¾ªç¯ï¼

䏿®µå¾ªç¯é常éè¦ä¸ä¸ªæå¤ä¸ªæ¡ä»¶ï¼
- **ä¸ä¸ªå¼å§æ¡ä»¶ï¼**å®è¢«åå§å为ä¸ä¸ªç¹å®çå¼ - è¿æ¯å¾ªç¯çèµ·ç¹ ("å¼å§ï¼ææ²¡æé£ç©âï¼ä¸é¢ï¼ã
- **ä¸ä¸ªç»ææ¡ä»¶ï¼**è¿æ¯å¾ªç¯åæ¢çæ å - é常计æ°å¨è¾¾å°ä¸å®å¼ãä»¥ä¸æè¯´çâææè¶³å¤çé£ç©âåï¼å设ä»éè¦ 10 份é£ç©æ¥å »æ´»ä»ç家人ã
- **ä¸ä¸ªè¿ä»£å¨ï¼**è¿é叏卿¯ä¸ªè¿ç»å¾ªç¯ä¸éå¢å°éç计æ°å¨ï¼ç´å°è¾¾å°éåºæ¡ä»¶ãæä»¬ä»¥å没ææç¡®è¯´æï¼ä½æ¯æä»¬å¯ä»¥èèä¸ä¸åæ°è½å¤æ¯å°æ¶æ¶é 2 份é£ç©ãæ¯å°æ¶åï¼ä»æ¶éçé£ç©éå¢å äºä¸¤åï¼ä»æ£æ¥ä»æ¯å¦æè¶³å¤çé£ç©ã妿ä»å·²ç»è¾¾å° 10 åï¼éåºæ¡ä»¶ï¼ï¼ä»å¯ä»¥åæ¢æ¶éåå®¶ã
å¨ä¼ªä»£ç ä¸ï¼è¿çèµ·æ¥å°±åä¸é¢è¿æ ·ï¼
loop(food = 0; foodNeeded = 10) {
if (food = foodNeeded) {
exit loop;
// æä»¬æè¶³å¤çé£ç©äºï¼åå®¶å§ã
} else {
food += 2; // è±ä¸ä¸ªå°æ¶å¤æ¶é两个é£ç©ã
// 循ç¯å°ä¼ç»§ç»æ§è¡ã
}
}
æä»¥éè¦çé£ç©éå®ä¸º 10ï¼åæ°ç®åçæ°é为 0ãå¨å¾ªç¯çæ¯æ¬¡è¿ä»£ä¸ï¼æä»¬æ£æ¥åæ°çé£ç©éæ¯å¦çäºä»éè¦çéã妿æ¯è¿æ ·ï¼æä»¬å¯ä»¥éåºå¾ªç¯ãå¦ææ²¡æï¼åæ°è±ä¸ä¸ªå°æ¶æ¶é两é¨åé£ç©ï¼å¾ªç¯å次è¿è¡ã
为ä½ï¼
å¨è¿ä¸ç¹ä¸ï¼ä½ å¯è½ä¼äºè§£å¾ªç¯ä¸çé«çº§æ¦å¿µï¼ä½ä½ å¯è½ä¼è®¤ä¸ºâ好çï¼ä½æ¯ï¼è¿æå©äºæç¼åæ´å¥½ç JavaScript 代ç ï¼âæ£å¦æä»¬åé¢æè¯´ï¼å¾ªç¯ä¸æåçäºæ 齿¯ä¸æ ·çï¼è¿å¯¹äºå¿«é宿éå¤ä»»å¡æ¯é常æç¨çã
é常ï¼å¾ªç¯çæ¯ä¸ªè¿ç»è¿ä»£ç代ç å°ç¥æä¸åï¼è¿æå³çä½ å¯ä»¥å®æç¸åä½ç¥æä¸åçä»»å¡çå ¨é¨è´è½½ - å¦æä½ æå¾å¤ä¸åç计ç®è¦åï¼åä¸åçä¸ä¸ªï¼ä¸ä¸æ ·çä¸ä¸ªåä¸ä¸ªï¼
让æä»¬æ¥çä¸ä¸ªä¾åæ¥å®ç¾å°è¯´æä¸ºä»ä¹å¾ªç¯æ¯ä¸ä»¶å¥½äºãå设æä»¬æ³å¨<canvas>å
ç´ ä¸ç»å¶ 100 ä¸ªéæºåï¼ææ´æ°æé®ä¸æ¬¡å䏿¬¡å°è¿è¡ç¤ºä¾ä»¥æ¥çä¸åçéæºéï¼ï¼
ä½ ç°å¨ä¸éè¦çè§£ææä»£ç ï¼ä½æä»¬æ¥ççå®é ç»å¶ 100 个åçé£é¨å代ç ï¼
for (var i = 0; i < 100; i++) {
ctx.beginPath();
ctx.fillStyle = "rgba(255,0,0,0.5)";
ctx.arc(random(WIDTH), random(HEIGHT), random(50), 0, 2 * Math.PI);
ctx.fill();
}
random(),å¨åé¢ç代ç ä¸å®ä¹è¿äºï¼è¿åä¸ä¸ª0å° x-1 é´çæ´æ°ãWIDTHåHEIGHTæµè§å¨å é¨çªå£ç宽度åé«åº¦ã
ä½ åºè¯¥æä¸ä¸ªåºæ¬çæ³æ³ - æä»¬ä½¿ç¨ä¸ä¸ªå¾ªç¯æ¥è¿è¡è¿ä¸ªä»£ç ç 100 次è¿ä»£ï¼å ¶ä¸æ¯ä¸ä¸ªå¨é¡µé¢ä¸çéæºä½ç½®ç»å¶ä¸ä¸ªåãæ è®ºæä»¬ç»å¶ 100 个åï¼1000 è¿æ¯ 10,000ï¼æéç代ç éå°æ¯ç¸åçãåªæä¸ä¸ªæ°åå¿ é¡»æ¹åã
妿æä»¬å¨è¿é没æä½¿ç¨å¾ªç¯ï¼æä»¬å¿ 须为æä»¬æ³è¦ç»å¶çæ¯ä¸ªåéå¤ä»¥ä¸ä»£ç ï¼
ctx.beginPath();
ctx.fillStyle = "rgba(255,0,0,0.5)";
ctx.arc(random(WIDTH), random(HEIGHT), random(50), 0, 2 * Math.PI);
ctx.fill();
è¿å°é常æ èèä¸å¾é¾ç»´æé«éã循ç¯ççç¸å½å¥½ç¨ã
循ç¯çæ å
æä»¬å¼å§æ¢ç´¢ä¸äºç¹å®ç循ç¯ç»æã第ä¸ä¸ªï¼ä½ ä¼ç»å¸¸ä½¿ç¨å°å®ï¼for 循ç¯ââ以ä¸ä¸º for 循ç¯çè¯æ³ï¼
for (initializer; condition; final-expression) {
// è¦è¿è¡ç代ç
}
æä»¬æï¼
-
å ³é®å
forï¼åè·ä¸äºæ¬å·ã -
卿¬å·å ï¼æä»¬æä¸ä¸ªé¡¹ç®ï¼ä»¥åå·åéï¼
- ä¸ä¸ªåå§åå¨ - è¿é常æ¯ä¸ä¸ªè®¾ç½®ä¸ºä¸ä¸ªæ°åçåéï¼å®è¢«é墿¥è®¡ç®å¾ªç¯è¿è¡ç次æ°ãå®ä¹ææ¶è¢«ç§°ä¸ºè®¡æ°åéã
- ä¸ä¸ªéåºæ¡ä»¶ - å¦å颿å°çï¼è¿ä¸ªå®ä¹å¾ªç¯ä½æ¶åæ¢å¾ªç¯ãè¿é常æ¯ä¸ä¸ªè¡¨ç°ä¸ºæ¯è¾è¿ç®ç¬¦ç表达å¼ï¼ç¨äºæ¥çéåºæ¡ä»¶æ¯å¦å·²æ»¡è¶³çæµè¯ã
- ä¸ä¸ªæç»æ¡ä»¶ - è¿æ»æ¯è¢«å¤æï¼æè¿è¡ï¼ï¼æ¯ä¸ªå¾ªç¯å·²ç»éè¿ä¸ä¸ªå®æ´çè¿ä»£æ¶å¤±æ¶é´ãå®é常ç¨äºå¢å ï¼æå¨æäºæ åµä¸éåï¼è®¡æ°å¨åéï¼ä½¿å ¶æ´æ¥è¿éåºæ¡ä»¶å¼ã
-
ä¸äºå å«ä»£ç åçè±æ¬å· - æ¯æ¬¡å¾ªç¯è¿ä»£æ¶é½ä¼è¿è¡è¿ä¸ªä»£ç ã
æä»¬æ¥çä¸ä¸ªçå®çä¾åï¼æä»¥æä»¬å¯ä»¥çåºè¿äºå徿´æ¸ æ¥ã
var cats = ["Bill", "Jeff", "Pete", "Biggles", "Jasmin"];
var info = "My cats are called ";
var para = document.querySelector("p");
for (var i = 0; i < cats.length; i++) {
info += cats[i] + ", ";
}
para.textContent = info;
è¿ç»æä»¬ä»¥ä¸è¾åºï¼
夿³¨ï¼ä½ å¯ä»¥å¨ GitHub 䏿¾å°è¿æ®µç¤ºä¾ä»£ç ã ï¼ä¹å¯ä»¥å¨çº¿è¿è¡ï¼ã
è¿æ¾ç¤ºäºä¸ä¸ªå¾ªç¯ç¨äºè¿ä»£æ°ç»ä¸ç项ç®ï¼å¹¶ä¸æ¯ä¸ªé¡¹ç®è¿è¡ä¸äºæä½ - JavaScript ä¸é常常è§ç模å¼ãè¿éï¼
-
è¿ä»£å¨
iä» 0 å¼å§ï¼var i = 0ï¼ã -
循ç¯å°ä¼ä¸ç´è¿è¡ç´å°å®ä¸åå°äºç«æ°ç»çé¿åº¦ãè¿å¾éè¦ - éåºæ¡ä»¶æ¾ç¤ºå¾ªç¯ä»ç¶è¿è¡çæ¡ä»¶ãæä»¥å¨è¿ç§æ åµä¸ï¼
< cats.lengthä»ç¶æ¯ççï¼å¾ªç¯ä»ç¶è¿è¡ã -
å¨å¾ªç¯ä¸ï¼æä»¬å°å½åç循ç¯é¡¹ï¼
cats[i]æ¯cats[å½å䏿 çä»»ä½ä¸è¥¿]ï¼ä»¥åéå·åç©ºæ ¼è¿æ¥å°infoåéçæ«å°¾ãæä»¥ï¼- å¨ç¬¬ä¸æ¬¡è¿è¡ä¸ï¼
i = 0ï¼æä»¥cats[0] +', 'å°è¢«è¿æ¥å°info("Bill")ä¸ã - å¨ç¬¬äºæ¬¡è¿è¡ä¸ï¼
i = 1ï¼æä»¥cats[1] +', 'å°è¢«è¿æ¥å°info("Jeff")ä¸ã - ççãæ¯æ¬¡å¾ªç¯è¿è¡åï¼1 å°è¢«æ·»å å° iï¼
i++ï¼ï¼ç¶åè¿ç¨å°å次å¯å¨ã
- å¨ç¬¬ä¸æ¬¡è¿è¡ä¸ï¼
-
å½çäº
cats.lengthæ¶ï¼å¾ªç¯å°åæ¢ï¼æµè§å¨å°ç§»å¨å°å¾ªç¯ä¸é¢çä¸ä¸ä¸ªä»£ç ä½ã
夿³¨ï¼æä»¬å°éåºæ¡ä»¶è®¾ä¸º < cats.lengthï¼è䏿¯ <= cats.length æ¯å ä¸ºè®¡ç®æºä» 0 å¼å§ï¼è䏿¯ 1 - å¼å§æ¶ i æ¯ 0ï¼å¹¶ä¸éæ¥å¢å å° i = 4ï¼æåä¸ä¸ªæ°ç»çç´¢å¼ï¼ã cats.length è¿å 5ï¼å 为æ°ç»ä¸æ 5 个项ç®ï¼ä½æ¯æä»¬ä¸å¸æè¾¾å° i = 5ï¼å 为è¿å°è¿åæªå®ä¹çæåä¸ä¸ªé¡¹ç®ï¼æ²¡æç´¢å¼ä¸º 5 çæ°ç»é¡¹ç®ï¼ãæä»¥æä»¬æ³è¦æ¯ cats.length å° 1ï¼i <ï¼ï¼è䏿¯ cats.lengthï¼i <=ï¼ã
夿³¨ï¼éåºæ¡ä»¶çä¸ä¸ªå¸¸è§é误æ¯ä½¿å®ä»¬ä½¿ç¨âçäºâ(===) è䏿¯è¯´âå°äºæçäºâ(<=)ã妿æä»¬æ³è¦è¿è¡æç循ç¯å°i = 5ï¼éåºæ¡ä»¶å°éè¦æ¯i <= cats.lengthã妿æä»¬è®¾ç½®ä¸ºi === cats.lengthï¼å¾ªç¯å°ä¸ä¼è¿è¡ï¼å 为å¨ç¬¬ä¸æ¬¡å¾ªç¯è¿ä»£æ¶ i ä¸çäº 5ï¼æä»¥å¾ªç¯ä¼ç«å³åæ¢ã
æä»¬çä¸çä¸ä¸ªå°é®é¢æ¯æåçè¾åºå¥åå½¢å¼ä¸æ¯å¾å¥½ï¼
My cats are called Bill, Jeff, Pete, Biggles, Jasmin,
çæ³æ åµä¸ï¼æä»¬æ³æ¹åæå循ç¯è¿ä»£ä¸çè¿æ¥ï¼ä»¥ä¾¿å¨å¥åæ«å°¾æ²¡æéå·ãå¯ï¼æ²¡é®é¢ - æä»¬å¯ä»¥å¾é«å ´å°å¨æä»¬ç for 循ç¯ä¸æå ¥ä¸ä¸ªæ¡ä»¶æ¥å¤çè¿ç§ç¹æ®æ åµï¼
for (var i = 0; i < cats.length; i++) {
if (i === cats.length - 1) {
info += "and " + cats[i] + ".";
} else {
info += cats[i] + ", ";
}
}
夿³¨ï¼ä½ å¯ä»¥å¨ GitHub 䏿¾å°è¿ä¸ªä¾åãï¼ä¹å¯ä»¥å¨çº¿è¿è¡ï¼
è¦åï¼ä½¿ç¨for- 䏿æå¾ªç¯ä¸æ ·ï¼ä½ å¿
须确ä¿åå§åç¨åºè¢«è¿ä»£ï¼ä»¥ä¾¿æç»è¾¾å°éåºæ¡ä»¶ãå¦ææ²¡æï¼å¾ªç¯å°æ°¸ä¸åæ¢ï¼æµè§å¨å°å¼ºå¶å®åæ¢ï¼å¦åä¼å´©æºãè¿è¢«ç§°ä¸ºæ é循ç¯ã
ä½¿ç¨ break éåºå¾ªç¯
妿è¦å¨ææè¿ä»£å®æä¹åéåºå¾ªç¯ï¼å¯ä»¥ä½¿ç¨ break è¯å¥ã彿们æ¥ç switch è¯å¥æ¶ï¼æä»¬å·²ç»å¨ä¸ä¸ç¯æç« ä¸éå°è¿è¿æ ·çæ åµ - å½ switch è¯å¥ä¸ç¬¦åè¾å ¥è¡¨è¾¾å¼çæ 嵿»¡è¶³æ¶ï¼break è¯å¥ç«å³éåº switch è¯å¥å¹¶ç§»å¨å°ä»£ç ä¹åã
ä¸å¾ªç¯ç¸å - break è¯å¥å°ç«å³éåºå¾ªç¯ï¼å¹¶ä½¿æµè§å¨ç§»å¨å°è·éå®çä»»ä½ä»£ç ã
说æä»¬æ³æç´¢ä¸ç³»åè系人åçµè¯å·ç ï¼åªè¿åæä»¬æ³è¦æ¾çå·ç ï¼é¦å
ï¼ä¸äºç®åç HTML - ä¸ä¸ªææ¬<input>ï¼å
许æä»¬è¾å
¥ä¸ä¸ªåç§°æ¥æç´¢ï¼ä¸ä¸ª<button>å
ç´ æ¥æäº¤æç´¢ï¼ä»¥åä¸ä¸ª<p>å
ç´ æ¾ç¤ºç»æï¼
<label for="search">Search by contact name: </label>
<input id="search" type="text" />
<button>Search</button>
<p></p>
ç¶åæ¯ JavaScriptï¼
const contacts = [
"Chris:2232322",
"Sarah:3453456",
"Bill:7654322",
"Mary:9998769",
"Dianne:9384975",
];
const para = document.querySelector("p");
const input = document.querySelector("input");
const btn = document.querySelector("button");
btn.addEventListener("click", function () {
let searchName = input.value.toLowerCase();
input.value = "";
input.focus();
for (let i = 0; i < contacts.length; i++) {
let splitContact = contacts[i].split(":");
if (splitContact[0].toLowerCase() === searchName) {
para.textContent =
splitContact[0] + "'s number is " + splitContact[1] + ".";
break;
} else if (i === contacts.length - 1) {
para.textContent = "Contact not found.";
}
}
});
-
é¦å æä»¬æä¸äºåéå®ä¹ - æä»¬æä¸ä¸ªèç³»ä¿¡æ¯æ°ç»ï¼æ¯ä¸ªé¡¹ç®æ¯ä¸ä¸ªå符串ï¼å å«ä¸ä¸ªä»¥åå·åéçåç§°åçµè¯å·ç ã
-
æ¥ä¸æ¥ï¼æä»¬å°ä¸ä¸ªäºä»¶çå¬å¨éå å°æé®ï¼
btnï¼ä¸ï¼è¿æ ·å½æä¸å®æ¶ï¼è¿è¡ä¸äºä»£ç æ¥æ§è¡æç´¢å¹¶è¿åç»æã -
æä»¬å°è¾å ¥çå¼è¾å ¥å°ä¸ä¸ªå为
searchNameçåéä¸ï¼ç¶åæ¸ ç©ºææ¬è¾å ¥å¹¶éæ°å¯¹åå®ï¼åå¤è¿è¡ä¸ä¸ä¸ªæç´¢ã -
ç°å¨æè¶£çé¨åï¼for 循ç¯ï¼
- æä»¬ç计æ°å¨å¼å§æ¶ä¸ºå¨ 0ï¼ç´å°è®¡æ°å¨ä¸åå°äº
contacts.lengthï¼å¹¶å¨å¾ªç¯çæ¯æ¬¡è¿ä»£ä¹åå°iéå¢ 1ã - å¨å¾ªç¯ä¸ï¼æä»¬é¦å
å°å½åè系人ï¼
contacts [i]ï¼æå为åå·å符ï¼å¹¶å°çæç两个å¼åå¨å¨å为splitContactçæ°ç»ä¸ã - ç¶åï¼æä»¬ä½¿ç¨æ¡ä»¶è¯å¥æ¥æµè¯
splitContact [0]ï¼è系人å§åï¼æ¯å¦çäºè¾å ¥çsearchNameã妿æ¯ï¼æä»¬å¨æ®µè½ä¸è¾å ¥ä¸ä¸ªåç¬¦ä¸²æ¥æ¥åè系人çå·ç ï¼å¹¶ä½¿ç¨ break æ¥ç»æå¾ªç¯ã
- æä»¬ç计æ°å¨å¼å§æ¶ä¸ºå¨ 0ï¼ç´å°è®¡æ°å¨ä¸åå°äº
-
å¨
(contacts.length-1)è¿ä»£åï¼å¦æè系人å§åä¸è¾å ¥çæç´¢ä¸ç¬¦ï¼åæ®µè½ææ¬è®¾ç½®ä¸ºâæªæ¾å°è系人âï¼å¾ªç¯ç»§ç»è¿ä»£ã
夿³¨ï¼ä½ å¯ä»¥å¨ GitHub 䏿¾å°è¿ä¸ªä¾åæå¨çº¿è¿è¡ã
ä½¿ç¨ continue è·³è¿è¿ä»£
continue è¯å¥ä»¥ç±»ä¼¼çæ¹å¼å·¥ä½ï¼è䏿¯å®å ¨è·³åºå¾ªç¯ï¼èæ¯è·³è¿å½å循ç¯èæ§è¡ä¸ä¸ä¸ªå¾ªç¯ãæä»¬æ¥çå¦å¤ä¸ä¸ªä¾åï¼å®æä¸ä¸ªæ°åä½ä¸ºä¸ä¸ªè¾å ¥ï¼å¹¶ä¸åªè¿åå¼å¹³æ¹ä¹åä¸ºæ´æ°çæ°åï¼æ´æ°ï¼ã
HTML 䏿åä¸ä¸ªä¾ååºæ¬ç¸å - ä¸ä¸ªç®åçææ¬è¾å ¥åä¸ä¸ªè¾åºæ®µè½ãJavaScript 乿¯ä¸æ ·çï¼è½ç¶å¾ªç¯æ¬èº«æç¹ä¸åï¼
var num = input.value;
for (var i = 1; i <= num; i++) {
var sqRoot = Math.sqrt(i);
if (Math.floor(sqRoot) !== sqRoot) {
continue;
}
para.textContent += i + " ";
}
Here's the output:
- å¨è¿ç§æ
åµä¸ï¼è¾å
¥åºä¸ºæ°åï¼
numï¼ãfor 循ç¯ç»å®ä¸ä¸ªä» 1 å¼å§ç计æ°å¨ï¼å¨è¿ç§æ åµä¸ï¼æä»¬å¯¹ 0 ä¸æå ´è¶£ï¼ï¼ä¸ä¸ªéåºæ¡ä»¶ï¼å½è®¡æ°å¨å¤§äºè¾å ¥numæ¶å¾ªç¯å°åæ¢ï¼å¹¶ä¸è¿ä»£å¨ç计æ°å¨å°æ¯æ¬¡å¢å 1ã - å¨å¾ªç¯ä¸ï¼æä»¬ä½¿ç¨
Math.sqrt(i)æ¾å°æ¯ä¸ªæ°åçå¹³æ¹æ ¹ï¼ç¶åæµè¯å¹³æ¹æ ¹æ¯å¦æ¯ä¸ä¸ªæ´æ°ï¼éè¿å¤æå½å®è¢«åä¸åæ´æ¶ï¼å®æ¯å¦ä¸èªèº«ç¸åï¼è¿æ¯Math.floor(...)å¯¹ä¼ éçæ°åçä½ç¨ï¼ã - å¦æå¹³æ¹æ ¹ååèäºå
¥çå¹³æ¹æ ¹ä¸ç¸çï¼
!==ï¼ï¼åè¡¨ç¤ºå¹³æ¹æ ¹ä¸æ¯æ´æ°ï¼å æ¤æä»¬å¯¹æ¤ä¸æå ´è¶£ãå¨è¿ç§æ åµä¸ï¼æä»¬ä½¿ç¨ continue è¯å¥è·³è¿å½å循ç¯èæ§è¡ä¸ä¸ä¸ªå¾ªç¯è¿ä»£ï¼èä¸å¨ä»»ä½å°æ¹è®°å½è¯¥æ°åã - å¦æå¹³æ¹æ ¹æ¯ä¸ä¸ªæ´æ°ï¼æä»¬å®å ¨è·³è¿ if åï¼æä»¥ continue è¯å¥ä¸è¢«æ§è¡; ç¸åï¼æä»¬å°å½å i å¼å ä¸ä¸ä¸ªç©ºæ ¼è¿æ¥å°æ®µè½å å®¹çæ«å°¾ã
夿³¨ï¼ä½ å¯ä»¥å¨ GitHub 䏿¥ç宿´ä»£ç ï¼æè å¨çº¿è¿è¡ã
while è¯å¥å do...while è¯å¥
for 䏿¯ JavaScript ä¸å¯ä¸å¯ç¨ç循ç¯ç±»åãå®é
ä¸è¿æå¾å¤å
¶ä»çï¼èç°å¨ä½ ä¸éè¦çè§£ææè¿äºï¼æä»¥å¼å¾çå 个人çç»æï¼è¿æ ·ä½ å°±å¯ä»¥å¨ç¨å¾®ä¸åçæ¹å¼è¯å«åºç¸åçåè½ã
é¦å ï¼æä»¬æ¥çç while 循ç¯ãè¿ä¸ªå¾ªç¯çè¯æ³å¦ä¸æç¤ºï¼
initializer
while (condition) {
// è¦è¿è¡ç代ç
final-expression
}
é¤äºå¨å¾ªç¯ä¹å设置åå§åå¨åéï¼å¹¶ä¸å¨è¿è¡ä»£ç ä¹åï¼å¾ªç¯ä¸å å« final-expressionï¼è䏿¯è¿ä¸¤ä¸ªé¡¹ç®è¢«å å«å¨æ¬å·ä¸ï¼è¿ä¸ä»¥åç for 循ç¯é常类似ãéåºæ¡ä»¶å å«å¨æ¬å·å ï¼å颿¯ while å ³é®åè䏿¯ forã
åæ ·çä¸ä¸ªé¡¹ç®ä»ç¶åå¨ï¼å®ä»¬ä»ç¶ä»¥ä¸ for 循ç¯ä¸ç¸åç顺åºå®ä¹ - è¿æ¯æéççï¼å ä¸ºä½ å¿ é¡»å å®ä¹ä¸ä¸ªåå§åå¨ï¼ç¶åæè½æ£æ¥å®æ¯å¦å·²å°è¾¾éåºæ¡ä»¶; å¨å¾ªç¯ä¸ç代ç è¿è¡ï¼è¿ä»£å·²ç»å®æï¼ä¹åï¼è¿è¡æåçæ¡ä»¶ï¼è¿åªæå¨å°æªè¾¾å°éåºæ¡ä»¶æ¶æä¼åçã
æä»¬åæ¥ççæä»¬çç«å表示ä¾ï¼ä½æ¯éåäºä¸ä¸ª while 循ç¯ï¼
var i = 0;
while (i < cats.length) {
if (i === cats.length - 1) {
info += "and " + cats[i] + ".";
} else {
info += cats[i] + ", ";
}
i++;
}
夿³¨ï¼This still works just the same as expected â have a look at it running live on GitHub (also view the full source code).
do...while循ç¯é常类似ä½å¨ while åæä¾äºç»æ¢æ¡ä»¶ï¼
initializer
do {
// è¦è¿è¡ç代ç
final-expression
} while (condition)
å¨è¿ç§æ åµä¸ï¼å¨å¾ªç¯å¼å§ä¹åï¼åå§åç¨åºå éæ°å¼å§ãdo å ³é®åç´æ¥å¨å å«è¦è¿è¡ç代ç çè±æ¬å·åç»æ¢æ¡ä»¶ä¹åã
è¿éçåºå«å¨äºéåºæ¡ä»¶æ¯ä¸åé½å å«å¨æ¬å·ä¸ï¼èå颿¯ä¸ä¸ª while å ³é®åãå¨ do ... while 循ç¯ä¸ï¼è±æ¬å·ä¸çä»£ç æ»æ¯å¨æ£æ¥ä¹åè¿è¡ä¸æ¬¡ï¼ä»¥æ¥çæ¯å¦åºè¯¥å次æ§è¡ï¼å¨ while å for ä¸ï¼æ£æ¥é¦å åºç°ï¼å æ¤ä»£ç å¯è½æ°¸è¿ä¸ä¼æ§è¡ï¼ã
æä»¬å次éåæä»¬çç«å表示ä¾ï¼ä»¥ä½¿ç¨ do...while 循ç¯ï¼
var i = 0;
do {
if (i === cats.length - 1) {
info += "and " + cats[i] + ".";
} else {
info += cats[i] + ", ";
}
i++;
} while (i < cats.length);
夿³¨ï¼å䏿¬¡ï¼å®æ£å¦æä»¬ææç飿 ·å·¥ä½ â çä¸çå®å¨Github å¨çº¿è¿è¡ (æè æ¥ç宿´æºä»£ç ).
è¦åï¼ä½¿ç¨ while å do...while â ææå¾ªç¯é½ä¸æ · â ä½ å¿ é¡»ä¿è¯åå§å鿝è¿ä»£çï¼é£ä¹å®æä¼éæ¸å°è¾¾å°éåºæ¡ä»¶ãä¸ç¶ï¼å®å°ä¼æ°¸è¿å¾ªç¯ä¸å»ï¼è¦ä¹æµè§å¨ä¼å¼ºå¶ç»æ¢å®ï¼è¦ä¹å®èªå·±ä¼å´©æºãè¿ç§°ä¸ºæ é循ç¯ã
主å¨å¦ä¹ ï¼å¯å¨å计æ¶ï¼
å¨è¿ä¸ªç»ä¹ ä¸ï¼æä»¬å¸æä½ æå°åºä¸ä¸ªç®åçå¯å¨å计æ¶å°è¾åºæ¡ï¼ä» 10 å°å ³éãå ·ä½æ¥è¯´ï¼æä»¬å¸æä½ ï¼
-
ä» 10 ä¸éå° 0.æä»¬ä¸ºä½ æä¾äºä¸ä¸ªåå§åå¨ - var i = 10;
-
å¯¹äºæ¯æ¬¡è¿ä»£ï¼å建ä¸ä¸ªæ°ç段è½å¹¶å°å ¶éå å°è¾åº<div>ï¼æä»¬ä½¿ç¨
var output = document.querySelector('.output');ãå¨è¯è®ºä¸ï¼æä»¬ä¸ºä½ æä¾äºéè¦å¨å¾ªç¯ä¸æå¤ä½¿ç¨ç䏿¡ä»£ç è¡ï¼var para = document.createElement('p');âæ°å»ºä¸ä¸ªæ®µè½ãoutput.appendChild(para);â å°æ®µè½éå å°è¾åº<div>ä¸ãpara.textContent =â æ®µè½å çæåçäºä½ æ¾å¨å³ä¾§çä»»ä½å 容ã
-
ä¸åçè¿ä»£æ°åéè¦å°ä¸åçææ¬æ¾å¨è¯¥è¿ä»£ç段è½ä¸ï¼ä½ éè¦ä¸ä¸ªæ¡ä»¶è¯å¥åå¤ä¸ª
para.textContent = linesï¼ï¼- 妿æ°åæ¯ 10ï¼æå°âCountdown 10âå°æ®µè½ã
- 妿æ°å为 0ï¼è¯·æå°âBlast offï¼âå°æ®µè½ã
- 对äºä»»ä½å ¶ä»æ°åï¼åªæå°æ®µè½çæ°åã
-
è®°ä½è¦å æ¬ä¸ä¸ªè¿ä»£å¨ï¼ç¶èï¼å¨è¿ä¸ªä¾åä¸ï¼æä»¬å¨æ¯æ¬¡è¿ä»£ä¹åé½ä¸éï¼è䏿¯ä¸åï¼æä»¥ä½ ä¸æ³è¦
i++- ä½ å¦ä½åä¸è¿ä»£ï¼
å¦æä½ ç¯äºé误ï¼ä½ å¯ä»¥éæ¶ä½¿ç¨âéç½®âæé®é置该示ä¾ãå¦æä½ ççå¡ä½äºï¼è¯·æâæ¾ç¤ºè§£å³æ¹æ¡âæ¥æ¥çè§£å³æ¹æ¡ã
主å¨å¦ä¹ ï¼å¡«åæ¥å®¾å表
卿¬ç»ä¹ ä¸ï¼æä»¬å¸æä½ è·ååå¨å¨æ°ç»ä¸çåç§°å表ï¼å¹¶å°å ¶æ¾å ¥æ¥å®¾å表ä¸ãä½è¿ä¸æ¯é£ä¹å®¹æ - æä»¬ä¸æ³è®©è²å°åæ´æè¿æ¥ï¼å 为ä»ä»¬æ¯è´ªå©ªåç²é²çï¼æ»æ¯åææçé£ç©ï¼æä»¬æä¸¤ä¸ªååï¼ä¸ä¸ªæ¯å®¢äººæ¿è®¤çï¼ä¸ä¸ªæ¯å®¢äººæç»çã
å ·ä½æ¥è¯´ï¼æä»¬å¸æä½ ï¼
- ç¼åä¸ä¸ªå¾ªç¯ï¼å®å°ä» 0 è¿ä»£å° people æ°ç»çé¿åº¦ãä½ éè¦ä»ä¸ä¸ªåå§åå¨
var i = 0å¼å§ï¼ä½æ¯ä½ éè¦ä»ä¹éåºæ¡ä»¶ï¼ - 卿¯ä¸ªå¾ªç¯è¿ä»£æé´ï¼ä½¿ç¨æ¡ä»¶è¯å¥æ£æ¥å½åæ°ç»é¡¹æ¯å¦çäºâPhilâæâLolaâï¼
- 妿æ¯ï¼åå°æ°ç»é¡¹è¿æ¥å°æç»æ®µè½ç
textContentçæ«å°¾ï¼åè·éå·åç©ºæ ¼ã - 妿䏿¯ï¼åå°æ°ç»é¡¹è¿æ¥å°æ¥æ¶æ®µè½ç
textContentçæ«å°¾ï¼åè·éå·åç©ºæ ¼ã
- 妿æ¯ï¼åå°æ°ç»é¡¹è¿æ¥å°æç»æ®µè½ç
æä»¬å·²ç»æä¾ç»ä½ ï¼
var i = 0;â ä½ çåå§åç¨åºrefused.textContent +=- å°è¿æ¥æäºä¸è¥¿çè¡çå¼å¤´ï¼ç»æäºrefused.textContentãadmitted.textContent +=- å°è¿æ¥æäºå 容å°ä¸è¡çç»å°¾çè¡çå¼å§ã
é¢å¤çå¥éé®é¢ - æå宿ä¸è¿°ä»»å¡åï¼ä½ å°çä¸ä¸¤ä¸ªåç§°å表ï¼ç¨éå·åéï¼ä½å®ä»¬å°ä¸æ´é½ - æ¯ä¸ªç»å°¾å¤é½ä¼æä¸ä¸ªéå·ãä½ å¯ä»¥å¶å®åºå¦ä½å¨æ¯ç§æ åµä¸ç¼åæåä¸ä¸ªéå·çè¡ï¼å¹¶æ·»å ä¸ä¸ªå®æ´ç忢ï¼ççæç¨çåç¬¦ä¸²æ¹æ³æç« ç帮å©ã
å¦æä½ ç¯äºé误ï¼ä½ å¯ä»¥éæ¶ä½¿ç¨âéç½®âæé®é置该示ä¾ãå¦æä½ ççå¡ä½äºï¼è¯·æâæ¾ç¤ºè§£å³æ¹æ¡âæ¥æ¥çè§£å³æ¹æ¡ã
åºè¯¥ä½¿ç¨åªç§å¾ªç¯ç±»åï¼
对äºåºæ¬ç¨éï¼forï¼while å do ... while 循ç¯å¤§é¨åå¯äºæ¢ãä»ä»¬é½å¯ä»¥ç¨æ¥è§£å³ç¸åçé®é¢ï¼ä½ 使ç¨åªä¸ä¸ªå°å¨å¾å¤§ç¨åº¦ä¸åå³äºä½ ç个人å好 - åªä¸ä¸ªä½ æå®¹æè®°ä½ææç´è§çãæä»¬åæ¥ççä»ä»¬ã
é¦å
æ¯ for:
for (initializer; exit-condition; final-expression) {
// code to run
}
while:
initializer
while (exit-condition) {
// è¦è¿è¡ç代ç
final-expression
}
æåæ¯ do...while:
initializer
do {
// è¦è¿è¡ç代ç
final-expression
} while (exit-condition)
æä»¬å»ºè®®ä½¿ç¨forï¼å 为å®å¯è½æ¯æç®åå°å¸®ä½ è®°ä½ä¸å - åå§åç¨åºï¼éåºæ¡ä»¶åæç»è¡¨è¾¾å¼é½å¿
é¡»æ´é½å°æ¾å
¥æ¬å·ï¼æä»¥å¾å®¹æçå°ä»ä»¬å¨åªéå¹¶æ£æ¥ä½ 没æä¸¢å¤±ä»ä»¬ã
夿³¨ï¼è¿æå ¶ä»å¾ªç¯ç±»å/ç¹æ§ï¼è¿äºç¹æ§å¨ é«çº§/ä¸é¨ çæ åµä¸æ¯æç¨çï¼è¶ åºäºæ¬æçèå´ãå¦æä½ æ³è¿ä¸æ¥äºè§£å¾ªç¯å¦ä¹ ï¼è¯·é 读æä»¬çé«çº§å¾ªç¯åè¿ä»£æåã
æè½æµè¯ï¼
ä½ å·²ç»å°è¾¾äºæ¬æçæ«å°¾ï¼ä½ä½ è¿è®°å¾æéè¦çç¥è¯åï¼å¨ä½ ç»§ç»å¦ä¹ ä¹åï¼ä½ å¯ä»¥åä¸äºæ·±å ¥çæµè¯ï¼æ¥éªè¯ä½ å·²ç»è®°ä½äºè¿äºç¥è¯ââ请åé æè½æµè¯ï¼å¾ªç¯ã
ç»è®º
æ¬æåä½ å±ç¤ºäºèåçåºæ¬æ¦å¿µï¼ä»¥å JavaScript ä¸å¾ªç¯ä»£ç æ¶å¯ç¨çä¸åé项ãä½ ç°å¨åºè¯¥æç½ä¸ºä»ä¹å¾ªç¯æ¯ä¸ä¸ªå¤çéå¤ä»£ç ç好æºå¶ï¼å¹¶ä¸å¨ä½ èªå·±çä¾åä¸ä½¿ç¨å®ä»¬ï¼
å¦æä½ æä»ä¹ä¸æç½çå°æ¹ï¼å¯ä»¥åé读ä¸éï¼æè èç³»æä»¬å¯»æ±å¸®å©ã
åè§
- Loops and iteration in detail
- for statement reference
- while and do...while references
- break and continue references
- What's the Best Way to Write a JavaScript For Loop? â some advanced loop best practices