Come configurare smartphone e PC. Portale informativo
  • casa
  • TV (Smart TV)
  • Forza l'uscita dal ciclo in JavaScript. Informazioni sulle funzioni di riduzione e filtro

Forza l'uscita dal ciclo in JavaScript. Informazioni sulle funzioni di riduzione e filtro

Lo scopo principale del while di JavaScript è eseguire ripetutamente una parte specifica di codice, ancora e ancora. È molto simile a un ciclo for con un'importante differenza. Permettetemi di prendermi un po' del vostro tempo per spiegare la differenza tra questi due tipi di cicli.

Qual è la differenza tra i cicli while e for?

La differenza tra questi cicli è il modo in cui interrompono l'esecuzione di un pezzo di codice.

Il ciclo for esegue un determinato numero di iterazioni. Sappiamo esattamente quante volte il ciclo eseguirà il frammento di codice contenuto nel suo corpo.

Nel frattempo, tutto accade diversamente. Un ciclo while JavaScript viene eseguito finché una determinata condizione è vera. Una volta che la condizione risulta falsa, il ciclo while termina.

La ragione per cui questi cicli sono diversi è che non possiamo necessariamente sapere in anticipo quando una determinata condizione non sarà più vera. Pertanto, non possiamo prevedere quante iterazioni del ciclo while verranno completate prima che si interrompa.

Pro e contro del ciclo while

Vorrei iniziare esaminando l'unico grande svantaggio del ciclo while. Può funzionare per sempre!

Se ti trovi in ​​una situazione in cui il ciclo while continua a essere eseguito indefinitamente, il tuo programma si bloccherà (o si bloccherà). Successivamente è necessario chiudere il browser per interrompere l'esecuzione del codice JavaScript.

Dovrei notare che il ciclo while non gestito di JavaScript di solito non viene eseguito per sempre. Perché come programmatori, abbiamo sempre la responsabilità di assicurarci che ad un certo punto la condizione del nostro ciclo while diventi falsa.

Ora, per quanto riguarda i “vantaggi”, sono molto evidenti. While verrà eseguito ininterrottamente finché la condizione viene soddisfatta. Un esempio di utilizzo di un ciclo while è chiedere all'utente di inserire dati. Il ciclo ti chiederà di inserire i dati ancora e ancora finché l'utente non inserisce i dati corretti.

Sintassi del ciclo while

La sintassi dei cicli for e while è molto simile.

È necessario utilizzare la parola chiave while e definire anche una condizione in base alla quale verrà eseguito il ciclo. Come altre strutture di controllo, il ciclo while definisce il proprio ambito.

Ecco come dovrebbe apparire il codice:

while () ( // inserisce qui il codice che deve essere eseguito in un ciclo)

La parte più difficile è determinare quale condizione o quali condizioni devono essere inserite nel ciclo affinché funzioni correttamente.

Ricorda che finché la condizione è vera, il ciclo continuerà a funzionare. Diamo un'occhiata a un esempio di utilizzo in JavaScript.

Esempio ciclo while

Diciamo di voler chiedere all'utente di inserire un numero compreso tra 1 e 10. Ma cosa succede se inserisce il numero sbagliato?

In questo caso dobbiamo chiedergli di inserire nuovamente il valore e verificare se la condizione è soddisfatta (se è stato inserito un numero compreso tra 1 e 10).

Questo è un caso in cui un ciclo for fallirebbe miseramente. Perché non possiamo sapere in anticipo quante volte dovremo chiedere all'utente di inserire il numero corretto. In questo caso ci viene in aiuto il ciclo while.

Ecco come potrebbe apparire il nostro codice:

var theNumber = prompt("Inserisci un numero compreso tra 1 e 10."); mentre (ilNumero< 1 || theNumber >10 || isNaN(theNumber)) ( theNumber = prompt("Valore inserito non valido, inserisci un numero compreso tra 1 e 10!"); ) alert("Eccellente! Hai inserito un numero: " + theNumber);

Vale la pena notare che nell'esempio precedente abbiamo tre condizioni separate in un ciclo while JavaScript.

Queste tre condizioni sono: ilNumero 10 || èNaN(ilNumero) . Indicano quanto segue:

  • SE il numero è inferiore a 1, OPPURE;
  • SE il numero è maggiore di 10, OPPURE;
  • SE theNumber NON è un numero, continua il ciclo.

Poiché stiamo utilizzando l'operatore OR (||) tra tutte le condizioni, ciò significa che se una qualsiasi delle condizioni è vera, la condizione complessiva del ciclo while verrà valutata come vera e il ciclo continuerà l'esecuzione.

Solo se tutte e tre le condizioni risultano false, la condizione complessiva del ciclo while verrà valutata falsa e si interromperà.

Conclusione

JavaScript while loop è l'unico vero ciclo nei linguaggi di programmazione. for è solo una variante speciale del ciclo while.

Questo è un caso in cui puoi ricreare tu stesso un ciclo for utilizzando la sintassi del ciclo while, guarda e impara:

contatore var = 0; mentre(contatore< 10) { counter = counter + 1; console.log("The counter is currently at: " + counter); }

Il codice verrà ripetuto esattamente 10 volte, né più né meno. Questo è esattamente il modo in cui funziona il ciclo for.

Non è necessario aver paura di utilizzare JavaScript mentre . Perché senza di esso molte applicazioni semplicemente non funzionerebbero correttamente!

Spero che questo articolo ti sia piaciuto.

La traduzione dell'articolo “While Loop in JavaScript” è stata preparata dal simpatico team di progetto.

Buono cattivo

Ultimo aggiornamento: 04/08/2018

I cicli ti consentono di eseguire un'azione più volte a seconda di determinate condizioni. JavaScript ha i seguenti tipi di loop:

    per..in

    per..di

    Mentre

    fare durante

per ciclo

Il ciclo for ha la seguente definizione formale:

For ([inizializzazione del contatore]; [condizione]; [modifica del contatore])( // azioni )

Ad esempio, utilizziamo un ciclo for per scorrere gli elementi di un array:

Persone Var = ["Tom", "Alice", "Bob", "Sam"]; for(var i = 0; i= 0; i--)( console.log(persone[i]); )

In questo caso, l'array viene restituito dalla fine e viene ripetuto da i = 3 a i = 0.

per..in

Il ciclo for..in è progettato per scorrere array e oggetti. La sua definizione formale è:

For (indice nell'array) ( // azioni )

Ad esempio, iteriamo sugli elementi dell'array:

Persone Var = ["Tom", "Alice", "Bob", "Sam"]; for(indice var in persone)( console.log(persone); )

Ciclo per...di

Il ciclo for...of è simile al ciclo for...in ed è progettato per scorrere raccolte, come gli array:

Consenti agli utenti = ["Tom", "Bob", "Sam"]; for(val degli utenti) console.log(val);

L'elemento della raccolta corrente in fase di iterazione viene inserito nella variabile val, il cui valore viene quindi stampato sulla console.

ciclo while

Il ciclo while viene eseguito finché una condizione è vera. La sua definizione formale è:

While(condizione)( // azioni )

Ancora una volta, visualizzeremo gli elementi dell'array utilizzando while:

Persone Var = ["Tom", "Alice", "Bob", "Sam"]; indice var = 0; mentre(indice< people.length){ console.log(people); index++; }

Il ciclo while qui verrà eseguito finché il valore di indice non sarà uguale alla lunghezza dell'array.

fare durante

In un ciclo do, viene prima eseguito il codice del ciclo, quindi viene verificata la condizione nell'istruzione while. E finché questa condizione è vera, il ciclo si ripete. Per esempio:

Var x = 1; do( console.log(x * x); x++; )mentre(x< 10)

Qui il codice del ciclo verrà eseguito 9 volte finché x diventa 10. Il ciclo do garantisce che le azioni verranno eseguite almeno una volta, anche se la condizione nell'istruzione while non è vera.

Continuare e interrompere le dichiarazioni

A volte è necessario uscire da un ciclo prima che venga completato. In questo caso possiamo usare l'istruzione break:

< array.length; i++) { if (array[i] >10) pausa; document.write(array[i] + "
"); }

Questo ciclo scorre tutti gli elementi dell'array, ma gli ultimi quattro elementi non verranno visualizzati nel browser, poiché il test if (array[i] > 10) interromperà il ciclo con un'istruzione break quando l'iterazione attraverso l'array raggiunge elemento 12.

Se dobbiamo solo saltare l'iterazione, ma non uscire dal ciclo, possiamo usare l'istruzione continue:

Matrice var = [ 1, 2, 3, 4, 5, 12, 17, 6, 7 ]; per (var i = 0; i< array.length; i++) { if (array[i] >10) continuare; document.write(array[i] + "
"); }

In questo caso, se il programma rileva un numero maggiore di 10 nell'array, questo numero non verrà visualizzato nel browser.

Il ciclo for è il ciclo più comunemente utilizzato in JavaScript.

Il suo design è simile a questo:

For (inizio; condizione; passo) ( /* corpo del ciclo */ )

È davvero semplice. Diamo un'occhiata ad un esempio:

Var io; per (i = 1; i

In questo esempio:

  • Inizio del ciclo: i = 1 (a partire dal valore i = 1)
  • Condizione del ciclo: i
  • Passo del loop: i++ (ad ogni passo del loop i aumenta di 1)
  • Corpo del ciclo: document.write("

    Viene eseguito il numero del passo del ciclo: " + "

    "); (visualizzare un messaggio sullo schermo)

Algoritmo passo-passo per l'esecuzione di questo ciclo for, più in dettaglio:

  • Inizio del ciclo: la variabile i è impostata su 1. Questa parte del ciclo viene eseguita una volta.
  • Viene verificata la condizione del ciclo (i 5): la fine del ciclo.
  • Viene eseguito il corpo del ciclo.
  • Il passo del ciclo viene eseguito. Nel nostro caso i++. Viene sempre eseguito dopo il corpo del ciclo.
  • Ritorna al punto 2.
  • Se il corpo del ciclo è costituito da un'istruzione, le parentesi graffe (...) non sono necessarie.

    La variabile i non scompare al termine del ciclo. Continua ad esistere e il suo valore dopo la fine del ciclo sarà pari a 6.

    Riassumiamo questi dati in un nuovo esempio:

    Var io; per (i = 1; i

    In questo caso, le parentesi graffe non sono state utilizzate per creare il corpo del loop.

    Le parentesi graffe (...) formano un blocco in JavaScript: questo è uno dei costrutti del linguaggio. Cioè, se ci sono parentesi graffe dopo l'istruzione del ciclo for, significa che il gestore JavaScript deve eseguire l'intero blocco JavaScript.

    Similmente a un blocco, puoi specificare una funzione in un ciclo for. Ecco un esempio:

    Per (var i = 1; i

    Ma quando si dichiara una funzione, sono necessarie le parentesi graffe (...). La loro assenza comporterà un errore.

    Tieni presente che in questo ciclo la variabile i viene dichiarata all'inizio del ciclo: for ( var io = 1; io

    Saltare le parti

    In generale, non è necessario scrivere l'inizio del ciclo:

    Var io = 1; per(;i

    Vedi, all'inizio del ciclo c'è solo un punto e virgola e il ciclo funziona bene.

    Puoi anche rimuovere il passaggio:

    Var io = 1; per(;i

    Questo ciclo for è diventato un analogo del ciclo while (i

    È possibile inserire un'espressione in una condizione che modifica una variabile.

    For (i = 10; i--;) ( document.write("

    Viene eseguito il passo del ciclo: " + i + ".

    "); }

    Poiché l'interprete JavaScript si aspetta di ricevere un valore booleano, qualsiasi valore risulta in un tipo booleano, quindi quando la variabile i diventa 0 (false) come risultato del successivo decremento, il ciclo si interromperà.

    Ciclo for infinito

    Sì, sì, lo so che è corretto scrivere infinito :)

    Quindi, il ciclo sarà infinito se la condizione è sempre vera. Ecco un esempio:

    Per (var i = 1; i

    In questo esempio, la variabile i diminuirà e non diventerà mai maggiore di cinque. Il ciclo funzionerà per sempre. Prova a eseguire questo script. Per me Chrome “si è perso nei suoi pensieri” e non ha visualizzato nulla sullo schermo, ma ha continuato a pensare e pensare.

    Fare attenzione a evitare di creare accidentalmente loop infiniti.

    Interruzione del ciclo for

    Per interrompere un ciclo for, proprio come per interrompere qualsiasi altro ciclo, utilizza il comando break. Quando il motore JavaScript incontra un comando break nel corpo di un ciclo, interrompe l'esecuzione del ciclo e inizia a eseguire le istruzioni dello script che seguono il ciclo. Se ce ne sono.

    Nell'esempio seguente, interromperemo il ciclo alla terza iterazione (terzo passaggio).

    Per (var i = 1; i

    Complichiamo un po' l'esempio

    Eseguiamo solo 100 iterazioni del ciclo infinito.

    Var$contatore = 1; per (var i = 1; i

    Prossima iterazione: continua

    Il comando continue termina l'iterazione corrente e inizia quella successiva.

    La direttiva continue è la “sorella minore” della direttiva break; ferma solo l’iterazione e non l’intero ciclo.

    Per (var i = 1; i

    Il ciclo seguente utilizza continue per restituire valori dispari:

    Per (var i = 0; i

    Naturalmente, i valori dispari possono essere emessi utilizzando un ciclo come questo senza una direttiva continue:

    Per (var i = 0; i

    Le direttive break/continua nel "?"

    Descriviamo brevemente l'operatore punto interrogativo "?". È simile a un costrutto if.

    Progettazione logica:

    Se (condizione) ( a(); ) altrimenti ( b(); )

    Funziona allo stesso modo del codice con l'operatore "?".

    Condizione? a() : b(); var io = 2; documento.write("

    Parte 1.

    "); if (i == 2) document.write("

    La condizione ha funzionato.

    "); altrimenti document.write("

    La condizione non ha funzionato.

    "); document.write("

    Parte 2.

    "); i == 2 ? document.write("

    La condizione ha funzionato.

    "): documento.write("

    La condizione non ha funzionato.

    ");

    Pertanto, è importante non poter utilizzare interrompi/continua a destra dell'operatore "?"

    In JavaScript, è vietato utilizzare costrutti sintattici che non restituiscono valori nell'operatore "?".

    L'esempio seguente non funziona, contiene un errore:

    Per (var i = 0; i

    Etichette per interruzione/continua

    A volte diventa necessario creare cicli nidificati. In tal caso, mentre il ciclo annidato è in esecuzione, potrebbe essere necessario interrompere il ciclo genitore o interrompere l'iterazione del ciclo genitore. A questo scopo vengono utilizzati i tag.

    È possibile utilizzare le etichette per designare i cicli, quindi utilizzare break o continue per uscire dal ciclo o continuare il ciclo con una nuova iterazione.

    I marcatori sono l'unico modo in cui i comandi break e continue influenzano l'esecuzione del ciclo esterno.

    L'istruzione label viene utilizzata solo insieme a break o continue per fornire un'uscita alternativa da un ciclo.

    L'etichetta ha la sintassi "nome:", il nome dell'etichetta deve essere univoco. Il segno viene posizionato prima del ciclo, nella stessa riga o con un'interruzione di riga.

    Allo stesso modo, puoi usare la direttiva break in questo posto. Ma se lo usi, come capisci, l'esecuzione dei cicli si fermerà.

    Var i, j; metka1: per (i = 0; i

    JavaScript non ha un'istruzione goto come PHP; è possibile utilizzare solo etichette break o continue.

    I tag vengono utilizzati raramente nella programmazione JavaScript perché si pensa che rendano il codice più difficile da leggere e comprendere. Si consiglia di utilizzare le funzioni durante la codifica.

    I loop sono un modo semplice per fare qualcosa più volte. Questo capitolo della Guida JavaScript ti introdurrà ai vari operatori disponibili in JavaScript.

    Puoi pensare al loop come a una versione computerizzata di un gioco in cui dici a qualcuno di fare X passi in una direzione, poi Y passi nell'altra; Ad esempio, l'idea del gioco "Cammina 5 passi verso est" può essere espressa come un ciclo:

    Passo Var; per (passo = 0; passo< 5; step++) { // Запускается 5 раз, с шагом от 0 до 4. console.log("Идём 1 шаг на восток"); }

    Esistono molti tipi diversi di cicli, ma essenzialmente fanno tutti la stessa cosa: ripetono un'azione più volte (non dimenticare il tempo di ripetizione zero, il conteggio nell'array inizia da 0). Cicli di diversa struttura offrono diversi modi per determinare l'inizio e la fine del ciclo. Diversi compiti di programmazione hanno i propri operatori di loop, con l'aiuto dei quali possono essere risolti molto più facilmente.

    Operatori progettati per organizzare i loop in JavaScript:

    per ciclo

    Il ciclo for ripete le azioni finché non si verifica un evento speciale di terminazione del ciclo. L'istruzione for in JavaScript è simile all'istruzione for in Java e C. La dichiarazione dell'istruzione for è la seguente:

    Per le espressioni ([inizio]; [condizione]; [passaggio]).

    Quando viene eseguito, accade quanto segue:

  • L'espressione iniziale viene eseguita, se specificata. Questa espressione in genere inizializza uno o più contatori, ma la sintassi consente all'espressione di avere qualsiasi complessità. Utilizzato anche per dichiarare variabili.
  • La condizione è soddisfatta. Se la condizione è vera, le espressioni vengono eseguite. Se è falso, il ciclo for si interrompe. Se la condizione viene completamente omessa, allora è considerata vera.
  • Le espressioni vengono eseguite. Per eseguire più espressioni, vengono utilizzate espressioni di blocco ( ... ) per raggruppare le espressioni.
  • Il passaggio viene aggiornato, se presente, quindi il controllo ritorna al passaggio 2.
  • Esempio

    La seguente funzione ha un ciclo for che conta il numero di generi selezionati nell'elenco a scorrimento (l'elemento che consente di selezionare più elementi). Il ciclo for dichiara una variabile i e imposta il suo valore su 0. Controlla inoltre che i sia inferiore al numero di elementi nell'elemento , esegue l'istruzione if e incrementa i di uno dopo ogni passaggio attraverso il ciclo.

    Seleziona alcuni generi musicali e poi clicca sul pulsante qui sotto: R&B Jazz Blues New Age Classica Opera

    function howMany(selectObject) ( var numeroSelezionato = 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)) });

    fai... while loop

    Il ciclo do... while si ripete finché la condizione data è vera. L'istruzione do... while assomiglia a:

    Esegui espressioni while(condizione);

    le espressioni vengono eseguite finché la condizione è vera. Per utilizzare più espressioni, utilizzare un'espressione di blocco (...) per raggrupparle. Se la condizione è vera, le espressioni verranno eseguite nuovamente. Alla fine di ogni passaggio viene verificata la condizione. Se la condizione è falsa, l'esecuzione viene sospesa e il controllo viene trasferito all'espressione after do... while .

    Esempio

    Nell'esempio seguente, il ciclo do verrà eseguito almeno 1 volta e verrà eseguito nuovamente finché i sarà inferiore a 5.

    Do ( i += 1; console.log(i); ) while (i< 5);

    ciclo while

    Il ciclo while esegue le espressioni finché la condizione è vera. Sembra questo:

    Espressioni While (condizione).

    Se la condizione diventa falsa, le espressioni nel ciclo interrompono l'esecuzione e il controllo passa all'espressione dopo il ciclo.

    La condizione viene verificata prima che le espressioni nel ciclo vengano eseguite. Se la condizione è vera, le espressioni vengono eseguite e quindi la condizione viene nuovamente testata. Se la condizione è falsa, l'esecuzione viene sospesa e il controllo passa all'espressione dopo un po'.

    Per utilizzare più espressioni, utilizzare un blocco espressione ( ... ) per raggrupparle.

    Esempio 1

    Il seguente ciclo while viene eseguito finché n è inferiore a tre:

    Var n = 0; var x = 0; mentre (nn< 3) { n++; x += n; }

    Ad ogni iterazione, il ciclo incrementa n e aggiunge quel valore a x. Pertanto x e n assumono i seguenti valori:

    • Dopo il primo passaggio: n = 1 e x = 1
    • Dopo il secondo: n = 2 e x = 3
    • Dopo il terzo passaggio: n = 3 e x = 6

    Dopo il terzo passaggio, condizione n< 3 становится ложным, поэтому цикл прерывается.

    Esempio 2

    Evita cicli infiniti. Assicurati che la condizione del ciclo alla fine diventi falsa; in caso contrario il ciclo non verrà mai interrotto. Le espressioni nel ciclo while successivo verranno eseguite per sempre perché la condizione non diventerà mai falsa:

    While (true) ( ​​console.log("Ciao mondo"); )

    Etichetta

    Un'etichetta è un'istruzione con un identificatore che ti consente di fare riferimento a qualche punto del tuo programma. Ad esempio, è possibile utilizzare un'etichetta per indicare un ciclo e quindi utilizzare le istruzioni break o continue per indicare se il programma deve interrompere il ciclo o continuare ad eseguirlo.

    La sintassi dell'etichetta è la seguente:

    Etichetta: operatore

    Senso tag può essere qualsiasi identificatore JavaScript valido che non sia una parola riservata. Operatore , quella specificata dopo l'etichetta può essere qualsiasi espressione.

    Esempio

    In questo esempio, markLoop rappresenta un ciclo while.

    MarkLoop: while (theMark == true) ( ​​faiSomething(); )

    rottura

    Utilizzare l'istruzione break per interrompere un ciclo, modificare il controllo o in combinazione con l'istruzione label.

    • Quando usi break senza etichetta, interrompe i cicli while , do- while e for o passa immediatamente il controllo all'espressione successiva.
    • Quando usi break with a mark, l'espressione appositamente contrassegnata viene interrotta.

    La sintassi dell'operatore potrebbe essere:

  • rottura;
  • rottura Etichetta;
  • La prima forma di sintassi interrompe del tutto il ciclo o cambia il controllo; il secondo interrompe un'espressione appositamente designata.

    Esempio 1

    L'esempio seguente scorre gli elementi in un array finché non trova un elemento il cui valore è theValue:

    Per (i = 0; i< a.length; i++) { if (a[i] == theValue) { break; } }

    Esempio 2: etichetta interruzione var x = 0; var z = 0 labelCancelLoops: while (true) ( ​​console.log("Loop esterno: " + x); x += 1; z = 1; while (true) ( ​​console.log("Loop interno: " + z) ; z += 1; if (z === 10 && x === 10) ( break labelCancelLoops; ) else if (z === 10) ( break; ) ) ) continua

    L'istruzione continue viene utilizzata per avanzare di un passo nei cicli while , do- while , for o per passare a un'etichetta.

    • Quando usi continue senza etichetta, interrompe l'iterazione corrente dei cicli while , do- while e for e continua il ciclo dall'iterazione successiva. A differenza di break , continue non interrompe completamente l'esecuzione del ciclo. Nel ciclo while salta alla condizione. E in questo aumenta il passo.
    • Quando usi Continua con un'etichetta, viene applicato al loop con quell'etichetta.

    La sintassi continue potrebbe essere simile a questa:

  • Continua;
  • Continua Etichetta ;
  • Esempio 1

    L'esempio seguente mostra un ciclo while con un'istruzione continue che si attiva quando il valore di i è 3. Pertanto, n ottiene i valori 1, 3, 7 e 12.

    Var io = 0; var n = 0; mentre io< 5) { i++; if (i == 3) { continue; } n += i; }

    Esempio 2

    Espressione segnata checkiandj contiene l'espressione contrassegnata controlla j. Quando incontra continue , il programma interrompe l'iterazione corrente controlla j e avvia l'iterazione successiva. Ogni volta che incontri continua, controlla j continua all'iterazione successiva finché la condizione restituisce false . Quando viene restituito false dopo aver calcolato il resto di una divisione checkiandj, checkiandj continua all'iterazione successiva finché la sua condizione restituisce false . Quando viene restituito false, il programma continua l'esecuzione con l'espressione after checkiandj.

    Se continua è contrassegnato checkiandj, il programma può continuare dall'inizio del segno checkiandj.

    Checkiandj: mentre (i< 4) { console.log(i); i += 1; checkj: while (j >4) ( console.log(j); j -= 1; if ((j % 2) != 0) ( continua checkj; ) console.log(j + "pari."); ) console.log("i = " + io); console.log("j = " + j); )

    per...in

    L'istruzione for...in scorre tutte le proprietà enumerabili di un oggetto. JavaScript eseguirà le espressioni specificate per ogni singola proprietà. Il ciclo for...in è simile al seguente:

    For (variabile nell'oggetto) (espressioni)

    Esempio

    La seguente funzione accetta un oggetto e il suo nome come argomento. Quindi scorre tutte le proprietà dell'oggetto e restituisce una stringa che contiene i nomi delle proprietà e i relativi valori.

    Funzione dump_props(oggetto, nome_oggetto) ( var risultato = ""; for (var i in oggetto) ( risultato += nome_oggetto + "." + i + " = " + oggetto[i] + "
    "; ) risultato += ""; ritorna risultato; )

    Per un oggetto auto con proprietà marca e modello, risultato Volere :

    Auto.marca = Ford auto.modello = Mustang

    Esempio n.2

    È inoltre possibile visualizzare il valore tramite chiave:

    Let obj = (modello: "AUDI A8", anno: "2019", colore: "marrone") for (key in obj) ( console.log(`$(key) = $(obj)`); ) // modello = AUDI A8 // anno = 2019 // colore = marrone

    Array

    Anche se si è tentati di utilizzare for...in come modo per scorrere tutti gli elementi di un Array, questo operatore restituisce il nome delle proprietà definite dall'utente oltre agli indici numerici. Pertanto, è preferibile utilizzare gli indici for for numerici standard quando si interagisce con gli array, poiché l'istruzione for...in esegue l'iterazione sulle proprietà definite dall'utente oltre agli elementi dell'array se si modifica l'array, ad esempio aggiungendo proprietà e metodi.

    Per ( variabile Di oggetto) { espressioni}

    L'esempio seguente mostra la differenza tra i cicli for...of e for...in. Mentre for...in scorre sui nomi delle proprietà, for...of scorre sui valori delle proprietà:

    Sia arr = ; arr.foo = "ciao"; for (let i in arr) ( console.log(i); // stampa "0", "1", "2", "foo" ) for (let i of arr) ( console.log(i); / / emette "3", "5", "7")

    I loop sono espressioni speciali che consentono di eseguire più volte lo stesso blocco di codice. L'esecuzione del codice viene interrotta quando si verifica una determinata condizione.

    JavaScript offre ai programmatori diversi tipi di loop. Diamo un'occhiata più da vicino a loro.

    Anello con contatore

    Ciclo con un contatore è utile se un codice deve essere eseguito un numero di volte strettamente definito. Questo è probabilmente il tipo di ciclo più comune.

    Un ciclo con un contatore è scritto in questo modo:

    per (; ; )

    Qui viene utilizzata la parola chiave for. Pertanto, tali cicli sono spesso chiamati "cicli for".

    L'espressione di inizializzazione viene eseguita per prima e solo una volta. Assegna una variabile speciale chiamata contatore di loop a un valore iniziale (solitamente 1). Il contatore del ciclo conta quante volte è stato eseguito il corpo del ciclo, ovvero il codice effettivo che deve essere eseguito un certo numero di volte.

    Il prossimo passo è verificare le condizioni. Determina il momento in cui l'esecuzione del ciclo verrà interrotta e inizierà l'esecuzione del codice seguente. In genere, la condizione confronta il valore del contatore del ciclo con il relativo valore associato. Se la condizione restituisce vera, viene eseguito il corpo del ciclo, altrimenti il ​​ciclo termina e inizia l'esecuzione del codice successivo al ciclo.

    Dopo aver attraversato il corpo del ciclo, viene eseguita l'espressione di incremento, modificando il valore del contatore. Questa espressione in genere incrementa il contatore (aumenta il suo valore di uno). Successivamente, la condizione viene verificata nuovamente, viene eseguito il corpo del ciclo, viene eseguito l'incremento, ecc., finché la condizione diventa falsa.

    Esempio di un ciclo con un contatore:

    per (i = 1; i< 11; i++) {
    un += 3;
    b = io*2+1;
    }

    Questo ciclo verrà eseguito 10 volte. Assegniamo al contatore i un valore iniziale pari a 1 e dopo ogni esecuzione del corpo del ciclo lo incrementiamo di uno. L'esecuzione del ciclo verrà interrotta quando il contatore aumenterà fino a 11 e la condizione del ciclo diventerà falsa.

    Il contatore del ciclo può essere scritto in una delle espressioni del corpo del ciclo, come abbiamo fatto noi. Nel nostro caso, il contatore conterrà valori in sequenza crescente da 1 a 10, che vengono utilizzati nei calcoli.

    Ecco altri due esempi di ciclo con un contatore:

    per (i = 10; i > 0; i--) (
    un += 3;
    b = io*2+1;
    }

    Qui il valore del contatore viene decrementato. Il suo valore iniziale è 10. Il ciclo verrà eseguito 10 volte e terminerà quando il contatore i conterrà 0; in questo caso i valori di quest'ultimo diminuiranno successivamente da 10 a 1.

    per (i = 2; i< 21; i += 2) b = i * 2 + 1;

    E in questo esempio, il valore iniziale del contatore è 2 e il valore finale è 21, ma il ciclo verrà eseguito, ancora una volta, 10 volte. E tutto perché il valore del contatore aumenta di 2 e assume successivamente i valori 2, 4, 6... 20.

    Ciclo con postcondizione

    Un ciclo postcondizione è molto simile a un ciclo contatore: viene eseguito finché la condizione del ciclo rimane vera. Inoltre, la condizione viene verificata non prima, ma dopo l'esecuzione del corpo del ciclo, motivo per cui il ciclo con una postcondizione ha preso il nome. Tale ciclo verrà eseguito almeno una volta, anche se la sua condizione è falsa fin dall'inizio.

    Formato del loop con postcondizione:

    Fare

    Mentre();

    Per definire un ciclo con una postcondizione, vengono fornite le parole chiave do e while, motivo per cui tali cicli sono spesso chiamati "loop do- while".

    Ecco un esempio di ciclo con una postcondizione:

    Fare(
    a = a*i+2;
    ++i;
    ) mentre (a< 100);

    Ecco un altro esempio:

    var a = 0, i = 1;
    Fare(
    a = a*i+2;
    ++i;
    ) mentre io< 20);

    Anche se qui sarebbe più conveniente utilizzare un circuito con un contatore che ci è già familiare e appositamente progettato per tali casi.

    Ciclo con precondizione

    Un ciclo con una precondizione differisce da un ciclo con una postcondizione in quanto la condizione viene verificata prima di eseguire il corpo del ciclo. Quindi, se (la condizione) è inizialmente falsa, il ciclo non verrà eseguito nemmeno una volta:

    Mentre()

    Per creare un ciclo con una postcondizione, viene fornita la parola chiave while. Pertanto, tali cicli sono anche chiamati “cicli while” (da non confondere con i “cicli do- while”!).

    Esempio di un ciclo con una precondizione:

    mentre (a< 100) {
    a = a*i+2;
    ++i;
    }

    Interrompere e riavviare un ciclo

    A volte è necessario interrompere l'esecuzione di un ciclo. Per raggiungere questo obiettivo, JavaScript fornisce ai programmatori Web istruzioni break e continue.

    L'operatore break permette di interrompere l'esecuzione di un ciclo e passare all'espressione successiva:

    mentre (a< 100) {
    a = a*i+2;
    se (a > 50) rottura;
    ++i;
    }

    In questo esempio, interrompiamo il ciclo se il valore della variabile a supera 50.

    L'operatore di riavvio continue consente di riavviare il ciclo, ovvero di lasciare ineseguite tutte le espressioni successive incluse nel corpo del ciclo e di iniziare l'esecuzione del ciclo dall'inizio: verifica della condizione, esecuzione dell'incremento e del corpo, ecc.

    Esempio:

    mentre (a< 100) {
    io =++i;
    se (i > 9 && i< 11) continue;
    a = a*i+2;
    }

    Qui saltiamo l'espressione che valuta a per tutti i valori di i compresi tra 10 e 20.

    I migliori articoli sull'argomento