English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Il ciclo viene utilizzato nella programmazione per eseguire automaticamente compiti ripetitivi.
Ad esempio, supponiamo che vogliamo stampare "Hello World" 10 volte. Puoi farlo come segue:
document.write("Hello World<br>"); document.write("Hello World<br>"); document.write("Hello World<br>"); document.write("Hello World<br>"); document.write("Hello World<br>"); document.write("Hello World<br>"); document.write("Hello World<br>"); document.write("Hello World<br>"); document.write("Hello World<br>"); document.write("Hello World<br>");
Nella ciclo, la statement deve essere scritta una volta sola, e il ciclo eseguirà 10 volte, come segue:
for (let i = 0; i < 10; i++) { document.write("Hello World<br>"); }Testa per vedere‹/›
La sintassi del ciclo for è la seguente:
for (inizializzazione; condizione; final-expression) { //语句 da eseguire }
inizializzazioneViene eseguito prima dell'esecuzione della语句 (una volta).
condizioneSi definisce la condizione per l'esecuzione della语句.
Vengono eseguiti dopo l'esecuzione della语句.final-expression.
for (var i = 0; i < 5; i++) { document.write("<br>The number is " + i); }Testa per vedere‹/›
Dall'esempio sopra, puoi leggere:
inizializzazione Si imposta la variabile prima dell'inizio del ciclo (variabile i = 0).
condizione Si definisce la condizione di esecuzione del ciclo (devo essere minore di 5).
Ogni volta che si esegue il blocco di codice del ciclo,La final-expressionAumentiamo un valore (i++).
Nell'esempio seguente, eseguiamo un ciclo for in ordine crescente su un array:
var frutti = ['Apple', 'Mango', 'Banana', 'Orange']; var txt = " for (var i = 0; i < frutti.length; i++) { txt += fruits[i] + '<br>'; }Testa per vedere‹/›
Nell'esempio seguente, eseguiamo un ciclo for in ordine decrescente su un array:
var frutti = ['Apple', 'Mango', 'Banana', 'Orange']; var txt = " for (var i = fruits.length - 1; i >= 0; i--) { txt += fruits[i] + '<br>'; }Testa per vedere‹/›
for循环中的三个表达式都是可选的。例如,我们可以通过在循环外部初始化变量来编写相同的For语句,而不需要初始化表达式。
//在循环外声明变量 var i = 0; //初始化循环 for (; i < 5; i++) { document.write(i); }Testa per vedere‹/›
在这种情况下,第一个; 表示该语句是指向初始化,条件还是最终表达式,即使省略它也是必要的。
下面,我们还可以从循环中删除条件。我们将使用一个if语句和break来告诉循环在i大于3时停止运行,这与true条件相反。
//在循环外声明变量 var i = 0; //省略初始化和条件 for (; ; i++) { if (i > 3) { break; } document.write(i); }Testa per vedere‹/›
注意:break如果省略该条件,则必须包含该语句,否则循环将永远无限循环运行,并可能导致浏览器崩溃。
最后,可以通过将最终表达式放在循环末尾来将其删除。两个分号仍必须包含在内,否则循环将无法运行。
//在循环外声明变量 var i = 0; //省略所有表达式 for (; ; ) { if (i > 3) { break; } document.write(i); i++; }Testa per vedere‹/›
从上面的示例可以看出,包括所有这三个语句通常会产生最简洁易读的代码。但是,知道以后可以省略语句是很有用的。
您可以嵌套循环,即在另一个循环内循环。
嵌套循环在矩阵乘法中的大多数地方都使用,显示表格和许多其他地方:
var txt = ""; for (var row = 0; row < 10; row++) { for (var col = 0; col < row; col++) { txt += " * "; } txt += "<br>"; }Testa per vedere‹/›
for...in循环迭代的对象的属性。
为了演示,我们将创建一个简单的myObj对象,其中包含一些name:value对。
var myObj = { name: "VISHAL", age: 22, height: 175, city: "New Delhi", getNothing: function () { return ""; } }; for (let x in myObj) { document.write(x); }Testa per vedere‹/›
In ogni iterazione, una proprietà proveniente dall'oggetto viene assegnata ax,E questo ciclo continua fino a che tutte le proprietà dell'oggetto sono esaurite.
Esempio che implementa un ciclo for...in e stampa le proprietà del browser web.NavigatorOggetto:
for (let x in navigator) { document.write(x); }Testa per vedere‹/›
La语句 for...of crea un ciclo che itera su oggetti iterabili, inclusi: stringhe built-in, array, oggetti simili a array e oggetti iterabili definiti dall'utente.
let iterable = [10, 20, 30, 40, 50]; for (let x of iterable) { document.write(x); }Testa per vedere‹/›
In ogni iterazione, un elemento proveniente dall'oggetto viene assegnato ax,E questo ciclo continua fino a che tutti gli elementi dell'oggetto sono esauriti.
Non importa cosa viene iterato con for...in e for...of loop. La principale differenza tra loro è ciò che iterano:
Iterazione delle proprietà enumerabili degli oggetti con for...in loop, in qualsiasi ordine
Iterazione dei dati con for...of loop, l'oggetto iterato deve essere definito per essere percorso
While loop e do...while loop saranno spiegati nel prossimo capitolo.