å¾ªç¯æä¾äºä¸ç§å¿«éåç®åçæ¹å¼å»åä¸äºéå¤çäºãJavaScript å ¥é¨çè¿ä¸ªç« èä¼ä»ç»å¨ JavaScript ä¸åå¨åªäºä¸åçè¿ä»£è¯å¥ã
ä½ å¯ä»¥æå¾ªç¯æ³æä¸ç§è®¡ç®æºåçæ¸¸æï¼åè¯æäººå¨ä¸ä¸ªæ¹åä¸èµ° X æ¥ï¼ç¶åå¨å¦ä¸ä¸ªæ¹åä¸èµ° Y æ¥ï¼ä¾å¦ï¼âåä¸èµ° 5 æ¥âå¯ä»¥ç¨ä¸ä¸ªå¾ªç¯æ¥è¿æ ·è¡¨è¾¾ï¼
var step;
for (step = 0; step < 5; step++) {
// Runs 5 times, with values of step 0 through 4.
console.log("Walking east one step");
}
å¾ªç¯æå¾å¤ç§ç±»ï¼ä½æ¬è´¨ä¸å®ä»¬é½åçæ¯åä¸ä»¶äºï¼å®ä»¬æä¸ä¸ªå¨ä½éå¤äºå¾å¤æ¬¡ï¼å®é ä¸éå¤çæ¬¡æ°æå¯è½ä¸º 0ï¼ãåç§å¾ªç¯æºå¶æä¾äºä¸åçæ¹æ³å»ç¡®å®å¾ªç¯çå¼å§åç»æãä¸åæ åµä¸ï¼æä¸ç§ç±»å循ç¯ä¼æ¯å ¶ä»ç循ç¯ç¨èµ·æ¥æ´ç®åã
JavaScript 䏿ä¾äºè¿äºå¾ªç¯è¯å¥ï¼
for
è¯å¥
ä¸ä¸ª for
循ç¯ä¼ä¸ç´é夿§è¡ï¼ç´å°æå®çå¾ªç¯æ¡ä»¶ä¸º falseãJavaScript ç for 循ç¯ï¼å JavaãC ç for 循ç¯ï¼æ¯å¾ç¸ä¼¼çãä¸ä¸ª for è¯å¥æ¯è¿ä¸ªæ ·åçï¼
for ([initialExpression]; [condition]; [incrementExpression]) statement
å½ä¸ä¸ª for
å¾ªç¯æ§è¡çæ¶åï¼ä¼åç以ä¸è¿ç¨ï¼
initialExpression
ï¼å®å°è¢«æ§è¡ãè¿ä¸ªè¡¨è¾¾å¼é常ä¼åå§åä¸ä¸ªæå¤ä¸ªå¾ªç¯è®¡æ°å¨ï¼ä½è¯æ³ä¸æ¯å
许ä¸ä¸ªä»»æå¤æåº¦ç表达å¼çãè¿ä¸ªè¡¨è¾¾å¼ä¹å¯ä»¥å£°æåéãcondition
表达å¼çå¼ã妿 condition
ç弿¯ trueï¼å¾ªç¯ä¸çè¯å¥ä¼è¢«æ§è¡ã妿 condition
ç弿¯ falseï¼for
循ç¯ç»æ¢ã妿 condition
è¡¨è¾¾å¼æ´ä¸ªé½è¢«çç¥æäºï¼condition çå¼ä¼è¢«è®¤ä¸ºæ¯ trueãstatement
被æ§è¡ã妿éè¦æ§è¡å¤æ¡è¯å¥ï¼å¯ä»¥ä½¿ç¨åï¼{ ... }
ï¼æ¥å
裹è¿äºè¯å¥ãincrementExpression
ï¼æ§è¡æ´æ°è¡¨è¾¾å¼ãä¸é¢ç彿°å
å«ä¸ä¸ªå«æ for
循ç¯å»è®¡ç®ä¸ä¸ªæ»å¨å表ä¸è¢«éä¸é¡¹ç®ç个æ°ï¼ä¸ä¸ª <select>
å
ç´ å
è®¸éæ©å¤é¡¹ï¼ãfor
循ç¯å£°æäºåé i å¹¶å°å®çåå§å¼è®¾ä¸º 0ã宿£æ¥ i
æ¯å¦æ¯ <select>
å
ç´ ä¸çé项æ°éå°ï¼æ§è¡äºéåç if
è¯å¥ï¼ç¶å卿¯æ¬¡å®æå¾ªç¯åï¼i
çå¼å¢å 1ã
<form name="selectForm">
<p>
<label for="musicTypes"
>Choose some music types, then click the button below:</label
>
<select id="musicTypes" name="musicTypes" multiple="multiple">
<option selected="selected">R&B</option>
<option>çµå£«</option>
<option>å¸é²æ¯</option>
<option>æ°çºªå
</option>
<option>å¤å
¸</option>
<option>æå§</option>
</select>
</p>
<p><input id="btn" type="button" value="éæ©äºå¤å°ä¸ªé项ï¼" /></p>
</form>
<script>
function howMany(selectObject) {
var numberSelected = 0;
for (var i = 0; i < selectObject.options.length; i++) {
if (selectObject.options[i].selected) {
numberSelected++;
}
}
return numberSelected;
}
var btn = document.getElementById("btn");
btn.addEventListener("click", function () {
alert("éæ©éé¡¹çæ°éæ¯ï¼" + howMany(document.selectForm.musicTypes));
});
</script>
do...while
è¯å¥
do...while
è¯å¥ä¸ç´éå¤ç´å°æå®çæ¡ä»¶æ±å¼å¾å°åå¼ï¼falseï¼ãä¸ä¸ª do...while è¯å¥çèµ·æ¥åè¿æ ·ï¼
do statement while (condition);
statement
卿£æ¥æ¡ä»¶ä¹å伿§è¡ä¸æ¬¡ãè¦æ§è¡å¤æ¡è¯å¥ï¼è¯å¥åï¼ï¼è¦ä½¿ç¨åè¯å¥ï¼{ ... }
ï¼å
æ¬èµ·æ¥ã妿 condition
为çï¼trueï¼ï¼statement
å°å次æ§è¡ã卿¯ä¸ªæ§è¡çç»å°¾ä¼è¿è¡æ¡ä»¶çæ£æ¥ãå½ condition
为åï¼falseï¼ï¼æ§è¡ä¼åæ¢å¹¶ä¸ææ§å¶æäº¤åç» do...while
åé¢çè¯å¥ã
å¨ä¸é¢çä¾åä¸ï¼è¿ä¸ª do
循ç¯å°è³å°éå¤ä¸æ¬¡ï¼å¹¶ä¸ä¸ç´éå¤ç´å° i
ä¸åå°äº 5ã
var i = 0;
do {
i += 1;
console.log(i);
} while (i < 5);
while
è¯å¥
ä¸ä¸ª while
è¯å¥åªè¦æå®çæ¡ä»¶æ±å¼ä¸ºçï¼trueï¼å°±ä¼ä¸ç´æ§è¡å®çè¯å¥åãä¸ä¸ª while
è¯å¥çèµ·æ¥åè¿æ ·ï¼
while (condition) statement
妿è¿ä¸ªæ¡ä»¶å为åï¼å¾ªç¯éç statement
å°ä¼åæ¢æ§è¡å¹¶ææ§å¶æäº¤åç» while
è¯å¥åé¢ç代ç ã
æ¡ä»¶æ£æµä¼å¨æ¯æ¬¡ statement
æ§è¡ä¹ååçã妿æ¡ä»¶è¿å为çï¼ statement
ä¼è¢«æ§è¡å¹¶ç´§æ¥ç忬¡æµè¯æ¡ä»¶ã妿æ¡ä»¶è¿å为åï¼æ§è¡å°åæ¢å¹¶ææ§å¶æäº¤åç» while åé¢çè¯å¥ã
è¦æ§è¡å¤æ¡è¯å¥ï¼è¯å¥åï¼ï¼è¦ä½¿ç¨è¯å¥å ({ ... }
) å
æ¬èµ·æ¥ã
åªè¦ n
å°äº 3ï¼ä¸é¢ç while
循ç¯å°±ä¼ä¸ç´æ§è¡ï¼
var n = 0;
var x = 0;
while (n < 3) {
n++;
x += n;
}
卿¯æ¬¡å¾ªç¯éï¼ n
ä¼å¢å 1ï¼å¹¶è¢«å å° x
ä¸ãæä»¥ï¼x å n çå忝ï¼
n
= 1ï¼x
= 1n
= 2ï¼x
= 3n
= 3ï¼x
= 6å¨ä¸æ¬¡å®æåï¼æ¡ä»¶ n < 3
çç»æä¸å为çï¼æä»¥å¾ªç¯ç»æ¢äºã
é¿å æ 穷循ç¯ï¼æ é循ç¯ï¼ãä¿è¯å¾ªç¯çæ¡ä»¶ç»ææç»ä¼åæåï¼å¦åï¼å¾ªç¯æ°¸è¿ä¸ä¼åæ¢ãå 为æ¡ä»¶æ°¸è¿ä¸ä¼åæåå¼ï¼ä¸é¢è¿ä¸ª while 循ç¯å°ä¼æ°¸è¿æ§è¡ï¼
while (true) {
console.log("Hello, world");
}
label
è¯å¥
ä¸ä¸ª label
æä¾äºä¸ä¸ªè®©ä½ å¨ç¨åºä¸å
¶ä»ä½ç½®å¼ç¨å®çæ è¯ç¬¦ãä¾å¦ï¼ä½ å¯ä»¥ç¨ label æ è¯ä¸ä¸ªå¾ªç¯ï¼ç¶åä½¿ç¨ break
æè
continue
æ¥æåºç¨åºæ¯å¦è¯¥åæ¢å¾ªç¯è¿æ¯ç»§ç»å¾ªç¯ã
label è¯å¥çè¯æ³çèµ·æ¥åè¿æ ·ï¼
label : statement
label
çå¼å¯ä»¥æ¯ä»»ä½çéä¿çåç JavaScript æ è¯ç¬¦ï¼ statement
å¯ä»¥æ¯ä»»æä½ æ³è¦æ è¯çè¯å¥ï¼åï¼ã
å¨è¿ä¸ªä¾åéï¼æ è®° markLoop
æ è¯äºä¸ä¸ª while
循ç¯ã
markLoop: while (theMark == true) {
doSomething();
}
举ä¸ä¸ªæ¯è¾å ¸åçä¾åï¼çå®åå³æç½ Label çåºç¨ï¼
æªæ·»å Labelï¼
var num = 0;
for (var i = 0; i < 10; i++) {
// i 循ç¯
for (var j = 0; j < 10; j++) {
// j 循ç¯
if (i == 5 && j == 5) {
break; // i = 5ï¼j = 5 æ¶ï¼ä¼è·³åº j 循ç¯
} // ä½ i 循ç¯ä¼ç»§ç»æ§è¡ï¼çäºè·³åºä¹ååç»§ç»æ§è¡æ´å¤æ¬¡ j 循ç¯
num++;
}
}
alert(num); // è¾åº 95
æ·»å Label åï¼
var num = 0;
outPoint: for (var i = 0; i < 10; i++) {
for (var j = 0; j < 10; j++) {
if (i == 5 && j == 5) {
break outPoint; // å¨ i = 5ï¼j = 5 æ¶ï¼è·³åºææå¾ªç¯ï¼
// è¿åå°æ´ä¸ª outPoint 䏿¹ï¼ç»§ç»æ§è¡
}
num++;
}
}
alert(num); // è¾åº 55
ä½¿ç¨ continue è¯å¥ï¼åå¯è¾¾å°ä¸æªæ·»å label ç¸åçææï¼ä½å¨è¿ç§æå¤å±å¾ªç¯çæ åµä¸ï¼å¾ªç¯çè·³åºè¿å ¥æµç¨æ´ä¸ºææ°ä¸äºï¼
var num = 0;
outPoint: for (var i = 0; i < 10; i++) {
for (var j = 0; j < 10; j++) {
if (i == 5 && j == 5) {
continue outPoint;
}
num++;
}
}
alert(num); // 95
ä» alert(num) çå¼å¯ä»¥çåºï¼continue outPoint; è¯å¥çä½ç¨æ¯è·³åºå½å循ç¯ï¼å¹¶è·³è½¬å° outPointï¼æ ç¾ï¼ä¸ç for 循ç¯ç»§ç»æ§è¡ã
break
è¯å¥
ä½¿ç¨ break
è¯å¥æ¥ç»æ¢å¾ªç¯ï¼switch
ï¼æè
æ¯é¾æ¥å° label è¯å¥ã
break
æ¶ï¼å®ä¼ç«å³ç»æ¢å½åæå¨ç while
ï¼do-while
ï¼for
ï¼æè
switch
å¹¶ææ§å¶æäº¤åè¿äºç»æåé¢çè¯å¥ãbreak
æ¶ï¼å®ä¼ç»æ¢æå®ç带æ è®°ï¼labelï¼çè¯å¥ãbreak
è¯å¥çè¯æ³çèµ·æ¥åè¿æ ·ï¼
break [label];
å¨è¯æ³ä¸ï¼è¢« []
å
裹çå
容æ¯å¯çç¥çï¼ä¹å°±æ¯ label
å¯ä»¥çç¥ãè¥çç¥ï¼åç»æ¢å½åæå¨çå¾ªç¯æ switch
ï¼è¥ä¸çç¥ï¼åç»æ¢æå®ç label è¯å¥ã
ä¸é¢çä¾åå¾ªç¯æ°ç»éçå
ç´ ï¼ç´å°æ¾å°ä¸ä¸ªçäº theValue
çå¼ï¼
for (i = 0; i < a.length; i++) {
if (a[i] == theValue) {
break;
}
}
ç¤ºä¾ 2ï¼ç»æ¢ä¸ä¸ª label
var x = 0;
var z = 0;
labelCancelLoops: while (true) {
console.log("å¤é¨å¾ªç¯ï¼" + x);
x += 1;
z = 1;
while (true) {
console.log("å
é¨å¾ªç¯ï¼" + z);
z += 1;
if (z === 10 && x === 10) {
break labelCancelLoops;
} else if (z === 10) {
break;
}
}
}
continue
è¯å¥
continue
è¯å¥å¯ä»¥ç¨æ¥ç»§ç»æ§è¡ï¼è·³è¿ä»£ç åçå©ä½é¨åå¹¶è¿å
¥ä¸ä¸å¾ªç¯ï¼ä¸ä¸ª while
ãdo-while
ãfor
ï¼æè
label
è¯å¥ã
continue
æ¶ï¼å®ç»æ¢å½å while
ï¼do-while
ï¼æè
for è¯å¥å°ç»å°¾çè¿æ¬¡ç循ç¯å¹¶ä¸ç»§ç»æ§è¡ä¸ä¸æ¬¡å¾ªç¯ãcontinue
æ¶ï¼å®ä¼åºç¨è¢« label æ è¯ç循ç¯è¯å¥ãcontinue
è¯å¥çè¯æ³çèµ·æ¥åè¿æ ·ï¼
continue [label];ç¤ºä¾ 1
The following example shows a while
loop with a continue
statement that executes when the value of i
is three. Thus, n
takes on the values one, three, seven, and twelve.
var i = 0;
var n = 0;
while (i < 5) {
i++;
if (i == 3) {
continue;
}
n += i;
console.log(n);
}
//1,3,7,12
var i = 0;
var n = 0;
while (i < 5) {
i++;
if (i == 3) {
// continue;
}
n += i;
console.log(n);
}
// 1,3,6,10,15
ç¤ºä¾ 2
ä¸ä¸ªè¢«æ ç¾ä¸º checkiandj
çè¯å¥å
å«äºä¸ä¸ªæ ç¾ä¸º checkj
çè¯å¥ã
妿éå° continue
è¯å¥ï¼ç¨åºä¼ç»æå½å chechj
çè¿ä»£å¹¶å¼å§ä¸ä¸è½®çè¿ä»£ã
æ¯æ¬¡éå° continue
è¯å¥æ¶ï¼checkj
è¯å¥ä¼ä¸ç´é夿§è¡ï¼ç´å° checkj
è¯å¥çæ¡ä»¶ä¸º false
ã
å½è¿å false
åï¼å°ä¼æ§è¡ checkiandj
çå©ä½è¯å¥ï¼checkiandj
ä¼ä¸ç´æ§è¡ï¼ç´å° checkiandj
çæ¡ä»¶ä¸º false
ã
å½ checkiandj
çè¿åå¼ä¸º false
æ¶ï¼å°ä¼æ§è¡ checkiandj
çä¸é¢çè¯å¥ã
妿 continue
æä¸ä¸ªæ è®° checkiandj
ï¼ç¨åºå°ä¼ä» checkiandj
è¯å¥åçé¡¶é¨ç»§ç»æ§è¡ã
var i = 0;
var j = 10;
checkiandj: while (i < 4) {
console.log(i);
i += 1;
checkj: while (j > 4) {
console.log(j);
j -= 1;
if (j % 2 == 0) {
continue checkj;
}
console.log(j + " æ¯å¥æ°ã");
}
console.log("i = " + i);
console.log("j = " + j);
}
for...in
è¯å¥
for...in
è¯å¥å¾ªç¯ä¸ä¸ªæå®çåéæ¥å¾ªç¯ä¸ä¸ªå¯¹è±¡ææå¯æä¸¾ç屿§ãJavaScript ä¼ä¸ºæ¯ä¸ä¸ªä¸åç屿§æ§è¡æå®çè¯å¥ã
for (variable in object) { statements }示ä¾
ä¸é¢ç彿°éè¿å®çåæ°å¾å°ä¸ä¸ªå¯¹è±¡åè¿ä¸ªå¯¹è±¡çååãç¶å循ç¯è¿ä¸ªå¯¹è±¡çææå±æ§å¹¶ä¸è¿åä¸ä¸ªååºå±æ§ååè¯¥å±æ§å¼çå符串ã
function dump_props(obj, obj_name) {
var result = "";
for (var i in obj) {
result += obj_name + "." + i + " = " + obj[i] + "<br>";
}
result += "<hr>";
return result;
}
对äºä¸ä¸ªæ¥æ make
å model
屿§ç car
对象æ¥è¯´ï¼æ§è¡ç»æ result
æ¯ï¼
car.make = Ford car.model = Mustangæ°ç»
è½ç¶ä½¿ç¨ for...in æ¥è¿ä»£æ°ç» Array
å
ç´ å¬èµ·æ¥å¾è¯±äººï¼ä½æ¯å®è¿åçä¸è¥¿é¤äºæ°åç´¢å¼å¤ï¼è¿æå¯è½æ¯ä½ èªå®ä¹ç屿§ååãå æ¤è¿æ¯ç¨å¸¦ææ°åç´¢å¼çä¼ ç»ç for
å¾ªç¯æ¥è¿ä»£ä¸ä¸ªæ°ç»æ¯è¾å¥½ï¼å 为ï¼å¦æä½ æ³æ¹åæ°ç»å¯¹è±¡ï¼æ¯å¦æ·»å 屿§æè
æ¹æ³ï¼for...in è¯å¥è¿ä»£çæ¯èªå®ä¹ç屿§ï¼è䏿¯æ°ç»çå
ç´ ãï¼è¯è
注ï¼ä¸é¢ç for...of
è¯å¥ï¼å forEach()
ï¼ä¹æ¯çæ³çéæ©ãï¼
for...of
è¯å¥
for...of
è¯å¥å¨å¯è¿ä»£å¯¹è±¡ï¼å
æ¬Array
ãMap
ãSet
ãarguments
ççï¼ä¸å建äºä¸ä¸ªå¾ªç¯ï¼å¯¹å¼çæ¯ä¸ä¸ªç¬ç¹å±æ§è°ç¨ä¸æ¬¡è¿ä»£ã
for (variable of object) { statement }
ä¸é¢çè¿ä¸ªä¾åå±ç¤ºäº for...of
å for...in
两ç§å¾ªç¯è¯å¥ä¹é´çåºå«ã for...in
循ç¯éåçç»ææ¯æ°ç»å
ç´ ç䏿 ï¼è for...of
éåçç»ææ¯å
ç´ çå¼ï¼
let arr = [3, 5, 7];
arr.foo = "hello";
for (let i in arr) {
console.log(i); // è¾åº "0", "1", "2", "foo"
}
for (let i of arr) {
console.log(i); // è¾åº "3", "5", "7"
}
// 注æ for...of çè¾åºæ²¡æåºç° "hello"
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4