Αναγκαστική έξοδος από τον βρόχο στο javascript. Για βρόχους σε JavaScript

Ένας βρόχος είναι μια εντολή ελέγχου που σας επιτρέπει να επαναλάβετε την εκτέλεση του κώδικα προγράμματος ορισμένες φορές. Κάθε μεμονωμένη εκτέλεση εντολών στο σώμα ενός βρόχου ονομάζεται επανάληψη.

ενώ βρόχος

Σύνταξη ενώ βρόχου:

Η έκφραση σε παρένθεση ονομάζεται προϋπόθεση για την εκπλήρωσηκύκλος ή συνοπτική κατάσταση. Αρχικά, υπολογίζεται η τιμή της έκφρασης. Η τιμή που προκύπτει μετατρέπεται σιωπηρά σε τύπο Boole, εάν είναι απαραίτητο. Εάν το αποτέλεσμα της αξιολόγησης της έκφρασης είναι true, τότε εκτελείται η εντολή που βρίσκεται στο σώμα του βρόχου, μετά ο έλεγχος μεταφέρεται στην αρχή του βρόχου και η συνθήκη αξιολογείται ξανά. Εάν το αποτέλεσμα της αξιολόγησης της έκφρασης είναι ψευδές, ο διερμηνέας τερματίζει τον βρόχο και προχωρά στην εκτέλεση της πρότασης μετά τον βρόχο. Έτσι, ο διερμηνέας εκτελεί τον κώδικα που βρίσκεται στο σώμα του βρόχου ξανά και ξανά, εφόσον η συνθήκη παραμένει αληθής:

Var i = 0; καθώς εγώ< 3) { // Выполнять код, пока значение переменной i меньше 3 alert("i: " + i); i++; // Увеличиваем значение переменной i }

βρόχος do-while

Σύνταξη βρόχου Do-while:

Ένας βρόχος do-while είναι παρόμοιος με έναν βρόχο while, με τη διαφορά ότι η συνθήκη του βρόχου ελέγχεται μετά την πρώτη επανάληψη και όχι πριν, και ο βρόχος τελειώνει με ένα ερωτηματικό. Εφόσον η συνθήκη ελέγχεται μετά την επανάληψη, ο κώδικας στο σώμα του βρόχου do-while εκτελείται πάντα τουλάχιστον μία φορά:

Var count = 0; do ( document.write(count + " "); count++; ) while(count< 5); Попробовать »

Αυτός ο βρόχος μπορεί να είναι χρήσιμος όταν ο κώδικας στο σώμα του βρόχου πρέπει να εκτελεστεί τουλάχιστον μία φορά, ανεξάρτητα από τη συνθήκη εκτέλεσης.

για βρόχο

Για τη σύνταξη βρόχου:

Ένας βρόχος for περιέχει τρεις εκφράσεις που χωρίζονται με ερωτηματικά. Αυτές οι τρεις εκφράσεις έχουν την ακόλουθη σειρά εκτέλεσης:

  1. Η πρώτη έκφραση αξιολογείται πάντα μόνο μία φορά - πριν από την πρώτη επανάληψη. Επομένως, συνήθως η πρώτη έκφραση είναι ο ορισμός μιας μεταβλητής που χρησιμοποιείται στη συνθήκη εκτέλεσης βρόχου ως μετρητής.
  2. Η δεύτερη έκφραση ορίζει την συνθήκη για την εκτέλεση του βρόχου. Υπολογίζεται πριν από κάθε επανάληψη και καθορίζει αν θα εκτελεστεί το σώμα του βρόχου. Εάν η έκφραση αξιολογηθεί ως true, ο κώδικας στο σώμα του βρόχου εκτελείται. Εάν επιστραφεί το false, ο βρόχος τελειώνει και ο έλεγχος μετακινείται στην επόμενη εντολή μετά τον βρόχο. Εάν την πρώτη φορά που ελέγχεται η συνθήκη, αποδειχθεί ψευδής, ο κώδικας στο σώμα του βρόχου δεν θα εκτελεστεί ούτε μία φορά.
  3. Μετά από κάθε επανάληψη, αξιολογείται η τρίτη έκφραση. Συνήθως χρησιμοποιείται για την αλλαγή της τιμής μιας μεταβλητής που χρησιμοποιείται για τον έλεγχο της συνθήκης ενός βρόχου.

Παράδειγμα βρόχου:

Για (var count = 0, count< 5; count++) document.write(count + " "); Попробовать »

Όπως μπορείτε να δείτε από το παράδειγμα, ο βρόχος for, σε αντίθεση με άλλους βρόχους, σας επιτρέπει να ομαδοποιήσετε τον κώδικα που σχετίζεται με τον βρόχο σε ένα μέρος.

Οποιαδήποτε από τις εκφράσεις στον βρόχο for μπορεί να λείπει, αλλά πρέπει να υπάρχουν τα ίδια τα ερωτηματικά, διαφορετικά θα υπάρχει συντακτικό σφάλμα. Εάν λείπει η δεύτερη έκφραση, ο βρόχος θα λειτουργεί για πάντα.

Var i = 0; Για εγώ< 4; i++) ... var i = 0; for (; i < 4;) ... for (var i = 1; /* нет условия */ ; i++) ... // Это эквивалентно следующему коду for (var i = 1; true; i++) ...

Αντί για μία έκφραση, μπορείτε να καθορίσετε πολλές εκφράσεις, χωρίζοντάς τες με τον τελεστή κόμματος.

// δεν θα εκτελεστεί επειδή η τελευταία έκφραση στον έλεγχο συνθήκης είναι false για (i = 1; i< 4, false; i++) ... for (var i = 1, j = 5; i <= 5; i++, j--) document.write(i + " " + j +"
"); Δοκιμάστε "

βρόχος for-in

Ένας βρόχος for-in χρησιμοποιείται για επανάληψη μέσω των απαριθμημένων ιδιοτήτων ενός αντικειμένου με τυχαία σειρά και έχει την ακόλουθη σύνταξη:

Για δήλωση (μεταβλητή σε αντικείμενο).

Στα αριστερά της λέξης-κλειδιού in βρίσκεται το όνομα μιας μεταβλητής, στην οποία εκχωρείται ως συμβολοσειρά το όνομα μιας από τις ιδιότητες του αντικειμένου πριν από την έναρξη κάθε επανάληψης του βρόχου. Στα δεξιά της λέξης-κλειδιού in υπάρχει ένα αντικείμενο του οποίου οι ιδιότητες θα επαναληφθούν μέσω του βρόχου. Ο βρόχος θα τρέχει μέχρι να επαναληφθούν όλες οι διαθέσιμες ιδιότητες. Εάν η μεταβλητή που αντιπροσωπεύει το αντικείμενο είναι μηδενική ή μη καθορισμένη, ο βρόχος δεν θα εκτελεστεί ούτε μία φορά:

Var obj = (x: 5, y: 10); for (var prop in obj) ( alert(prop); )

Για να διατηρήσετε τον κώδικα που σχετίζεται με έναν βρόχο σε ένα σημείο, μπορείτε να δηλώσετε μια μεταβλητή σε έναν βρόχο for-in. Επομένως, η έκφραση πριν από τη λέξη-κλειδί in είναι συνήθως μια δήλωση μιας μεταβλητής στην οποία θα εκχωρηθούν ονόματα ιδιοτήτων.

Βρόχοι JavaScriptπαρέχει επαναλαμβανόμενη εκτέλεση επαναλαμβανόμενων υπολογισμών. Βελτιστοποιούν τη διαδικασία κωδικοποίησης εκτελώντας την ίδια πρόταση ή μπλοκ εντολών που σχηματίζουν το σώμα ενός βρόχου συγκεκριμένες φορές (χρησιμοποιώντας μια μεταβλητή μετρητή) ή ενώ μια καθορισμένη συνθήκη είναι αληθής. Οι βρόχοι επαναλαμβάνονται σε μια ακολουθία τιμών. Η εκτέλεση ενός βρόχου μία φορά καλείται επανάληψη.

Η απόδοση ενός βρόχου επηρεάζεται από τον αριθμό των επαναλήψεων και τον αριθμό των πράξεων που εκτελούνται στο σώμα του βρόχου κάθε επανάληψης.

Οι ακόλουθοι τελεστές βρόχου υπάρχουν στο JavaScript:

1) το for χρησιμοποιείται όταν γνωρίζετε εκ των προτέρων πόσες φορές πρέπει να κάνετε κάτι.
2) το for...in χρησιμοποιείται για να διασχίσει τις ιδιότητες των αντικειμένων.
3) ενώ χρησιμοποιείται όταν δεν ξέρετε πόσες φορές χρειάζεται να κάνετε κάτι.
4) do...while λειτουργεί παρόμοια με τη δήλωση while. Η διαφορά είναι ότι το do...while εκτελεί πάντα την έκφραση μέσα στις σγουρές αγκύλες τουλάχιστον μία φορά, ακόμα κι αν ο έλεγχος συνθήκης επιστρέψει false .

Τύποι βρόχων σε JavaScript, έλεγχος βρόχου

1. Για βρόχο

Ο βρόχος for χρησιμοποιείται για επανάληψη μέσω των στοιχείων πινάκων ή αντικειμένων που μοιάζουν με πίνακα, όπως ορίσματα και HTMLCollection. Η συνθήκη ελέγχεται πριν από κάθε επανάληψη του βρόχου. Εάν ο έλεγχος είναι επιτυχής, εκτελείται ο κώδικας μέσα στον βρόχο, διαφορετικά ο κώδικας μέσα στον βρόχο δεν εκτελείται και το πρόγραμμα συνεχίζει από την πρώτη γραμμή αμέσως μετά τον βρόχο.

Ο επόμενος βρόχος θα εκτυπώσει τη γραμμή Hello, JavaScript! Πέντε φορές.

Για (var i = 0; i< 5; i++) { console.log(i + ": Hello, JavaScript!"); } Ρύζι. 1. Αποτέλεσμα εκτέλεσης ενός βρόχου for στην κονσόλα

1.1. Πώς λειτουργεί ο βρόχος for

Ο βρόχος for αποτελείται από τρεις διαφορετικές λειτουργίες:

Βήμα 1. αρχικοποίηση var i = 0; — δήλωση μεταβλητής μετρητή που θα ελεγχθεί κατά την εκτέλεση βρόχου. Αυτή η μεταβλητή αρχικοποιείται με την τιμή 0. Τις περισσότερες φορές, οι μεταβλητές που ονομάζονται i, j και k λειτουργούν ως μετρητές βρόχου.

Βήμα 2. έλεγχος κατάστασηςΕγώ< 5; — условное выражение, если оно возвращает true , тело цикла (инструкция в фигурных скобках) будет выполнено. В данном примере проверка условия идёт до тех пор, пока значение счётчика меньше 5 .

Βήμα 3. τελική λειτουργία i++ - λειτουργία αύξησης μετρητή, αυξάνει την τιμή της μεταβλητής var i κατά ένα. Αντί για τη λειτουργία αύξησης, μπορεί επίσης να χρησιμοποιηθεί η λειτουργία μείωσης.

Στο τέλος του βρόχου, η μεταβλητή var i αποθηκεύεται στο 1. Η επόμενη επανάληψη του βρόχου εκτελείται για (var i = 1; i< 5; i++) { } . Условное выражение вычисляется снова, чтобы проверить, является ли значение счётчика i всё ещё меньше 5 . Если это так, операторы в теле цикла выполняются ещё раз. Завершающая операция снова увеличивает значение переменной на единицу. Шаги 2 и 3 повторяются до тех пор, пока условие i < 5; возвращает true .

1.2. Εκτύπωση τιμών πίνακα

Για να εκτυπώσετε τις τιμές ενός πίνακα χρησιμοποιώντας έναν βρόχο for, πρέπει να χρησιμοποιήσετε την ιδιότητα μήκος του πίνακα. Αυτό θα σας βοηθήσει να προσδιορίσετε τον αριθμό των στοιχείων στον πίνακα και να κάνετε βρόχο τον ίδιο αριθμό φορές.

Το παρακάτω σενάριο θα εμφανίσει πέντε μηνύματα με τα ονόματα των χρωμάτων:

Var flowers = ["Τριαντάφυλλο", "Κρίνος", "Τουλίπα", "Γιασεμί", "Ορχιδέα"]; για (var i = 0; i< flowers.length; i++){ alert(flowers[i] + " - это цветок."); }

Εάν η τιμή της ιδιότητας μήκος δεν αλλάξει κατά τη διάρκεια του βρόχου, μπορείτε να την αποθηκεύσετε σε μια τοπική μεταβλητή και στη συνέχεια να χρησιμοποιήσετε αυτήν τη μεταβλητή σε μια έκφραση υπό όρους. Με αυτόν τον τρόπο, μπορείτε να αυξήσετε την ταχύτητα του βρόχου, καθώς η τιμή της ιδιότητας μήκος θα ανακτηθεί μόνο μία φορά σε όλη τη διάρκεια του βρόχου.

Var flowers = ["Τριαντάφυλλο", "Κρίνος", "Τουλίπα", "Γιασεμί", "Ορχιδέα"], len = λουλούδια.μήκος; για (var i = 0; i

2. Βρόχος για...μέσα

Οι βρόχοι For...in χρησιμοποιούνται για τη διέλευση των ιδιοτήτων αντικειμένων που δεν είναι πίνακας. Αυτή η παράκαμψη ονομάζεται επίσης ΜΕΤΑΦΟΡΑ. Κατά τη διέλευση, συνιστάται να χρησιμοποιείτε τη μέθοδο hasOwnProperty() για να φιλτράρετε ιδιότητες που κληρονομήθηκαν από το πρωτότυπο.

Για παράδειγμα, ας δημιουργήσουμε ένα αντικείμενο χρησιμοποιώντας ένα αντικείμενο κυριολεκτικά.

Var user = ( όνομα: "Alice", ηλικία: 25, χώρα: "Russia" ); for (var prop in user) ( console.log(prop + ": " + user); )
Ρύζι. 2. Αποτέλεσμα εκτέλεσης του βρόχου for...in στην κονσόλα

Ας υποθέσουμε ότι σε ένα σενάριο πριν ή μετά τη δημιουργία του αντικειμένου χρήστη, το πρωτότυπο του αντικειμένου αντικειμένου επεκτάθηκε με μια πρόσθετη μέθοδο clone().

Αν (τύπος Object.prototype.clone === "μη καθορισμένο") ( Object.prototype.clone = συνάρτηση () (); )

Δεδομένου ότι η πρωτότυπη αλυσίδα κληρονομικότητας ελέγχεται συνεχώς από τον διερμηνέα, όλα τα αντικείμενα αποκτούν αυτόματα πρόσβαση στη νέα μέθοδο.


Ρύζι. 3. Αποτέλεσμα επανάληψης του βρόχου for...in στην κονσόλα

Για να αποφευχθεί ο εντοπισμός αυτής της μεθόδου κατά την απαρίθμηση των ιδιοτήτων του αντικειμένου χρήστη, χρησιμοποιείται η μέθοδος hasOwnProperty(), η οποία θα φιλτράρει τις ιδιότητες του πρωτοτύπου.

Var user = ( όνομα: "Alice", ηλικία: 25, χώρα: "Russia" ); if (typeof Object.prototype.clone === "undefined") ( Object.prototype.clone = συνάρτηση () (); ) for (var prop in user) ( if (user.hasOwnProperty(prop)) ( console.log (προπ + ": " + χρήστης); ) )
Ρύζι. 4. Το αποτέλεσμα της λίστας των ιδιοτήτων ενός αντικειμένου χρησιμοποιώντας τη μέθοδο hasOwnProperty().

3. Ενώ βρόχος

Ο βρόχος while είναι ένας βρόχος με προκαταρκτικό έλεγχο μιας έκφρασης υπό όρους. Η δήλωση μέσα στον βρόχο (μπλοκ κώδικα σε σγουρές αγκύλες) θα εκτελεστεί εάν η έκφραση υπό όρους αξιολογηθεί ως true. Εάν ο πρώτος έλεγχος επιστρέψει false, το μπλοκ εντολών δεν θα εκτελεστεί ούτε μία φορά.

Μετά την ολοκλήρωση της επανάληψης του βρόχου, η υπό όρους έκφραση ελέγχεται ξανά για αλήθεια και η διαδικασία επαναλαμβάνεται έως ότου η έκφραση αξιολογηθεί ως ψευδής. Σε αυτήν την περίπτωση, το πρόγραμμα θα συνεχίσει από την πρώτη γραμμή αμέσως μετά τον βρόχο (αν υπάρχει).

Αυτός ο βρόχος θα εμφανίσει τον πίνακα πολλαπλασιασμού για τον αριθμό 3:

Var i = 1; var msg = ""; καθώς εγώ< 10) { msg+= i + " x 3 = " + (i * 3) + "
"; i++; ) document.write(msg);
Ρύζι. 5. Αποτέλεσμα εκτέλεσης του βρόχου while

4. Κάνε...while βρόχος

Loop do...while? ελέγχει τη συνθήκη συνέχισης μετά την εκτέλεση του βρόχου. Σε αντίθεση με τον βρόχο while, στο do...while; Το σώμα του βρόχου εκτελείται τουλάχιστον μία φορά, αφού η συνθήκη ελέγχεται στο τέλος του βρόχου και όχι στην αρχή. Αυτός ο βρόχος χρησιμοποιείται λιγότερο συχνά από το while , αφού στην πράξη μια κατάσταση όπου απαιτείται τουλάχιστον μία εκτέλεση βρόχου είναι σπάνια.

Var αποτέλεσμα = ""; var i = 0; κάνω ( i += 1; αποτέλεσμα += i + " "; ) ενώ (i< 5); document.write(result);
Ρύζι. 6. Αποτέλεσμα εκτέλεσης του βρόχου do...while

Στο παρακάτω παράδειγμα, οι εντολές μέσα σε έναν βρόχο εκτελούνται μία φορά, ακόμα κι αν η συνθήκη δεν είναι αληθής.

Var i = 10; do ( document.write(i + " "); i++; ) ενώ (i< 10);

5. Άπειροι βρόχοι

Όταν δημιουργείτε οποιονδήποτε βρόχο, μπορείτε να δημιουργήσετε έναν άπειρο βρόχο που δεν θα τελειώσει ποτέ. Ένας τέτοιος βρόχος θα μπορούσε ενδεχομένως να συνεχίσει να εκτελείται όσο ο υπολογιστής του χρήστη λειτουργεί. Τα περισσότερα σύγχρονα προγράμματα περιήγησης μπορούν να το ανιχνεύσουν και να ζητήσουν από τον χρήστη να σταματήσει την εκτέλεση του σεναρίου. Για να αποφύγετε τη δημιουργία άπειρου βρόχου, πρέπει να είστε σίγουροι ότι η δεδομένη συνθήκη θα επιστρέψει ψευδής κάποια στιγμή. Για παράδειγμα, ο ακόλουθος βρόχος καθορίζει μια συνθήκη που δεν επιστρέφει ποτέ false επειδή το i δεν θα είναι ποτέ μικρότερο από 10:

For (var i = 25; i > 10; i++) ( document.write("Αυτή η πρόταση θα τρέχει για πάντα...
"); }

6. Ένθετοι βρόχοι

Ένας βρόχος μέσα σε έναν άλλο βρόχο ονομάζεται φωλιασμένος. Με κάθε επανάληψη του βρόχου, ο ένθετος βρόχος εκτελείται πλήρως. Οι ένθετοι βρόχοι μπορούν να δημιουργηθούν χρησιμοποιώντας έναν βρόχο for και έναν βρόχο while.

Για (var count = 1; count< 3; count++) { document.write(count + ". Строка цикла
"); for (var nestcount = 1; nestcount< 3; nestcount++) { document.write("Строка вложенного цикла
"); } }
Ρύζι. 7. Αποτέλεσμα εκτέλεσης ένθετου βρόχου for

7. Διαχείριση κύκλου

Ο βρόχος μπορεί να ελεγχθεί χρησιμοποιώντας εντολές διακοπής. και συνεχίζω? .

7.1. Διάλειμμα χειριστή.

Διάλειμμα χειριστή. τερματίζει την εκτέλεση του τρέχοντος βρόχου. Χρησιμοποιείται σε εξαιρετικές περιπτώσεις όταν ο βρόχος δεν μπορεί να εκτελεστεί για κάποιο λόγο, όπως εάν η εφαρμογή αντιμετωπίσει σφάλμα. Τις περισσότερες φορές ο χειριστής διακοπής? είναι μέρος της κατασκευής if.

Όταν η δήλωση σπάσει? χρησιμοποιείται χωρίς ετικέτα, σας επιτρέπει να βγείτε από μια πρόταση βρόχου ή αλλαγής. Το παρακάτω παράδειγμα δημιουργεί έναν μετρητή του οποίου οι τιμές θα πρέπει να κυμαίνονται από 1 έως 99, αλλά η εντολή break διακόπτει τον βρόχο μετά από 14 επαναλήψεις.

Για (var i = 1; i< 100; i++) { if (i == 15) { break; } document.write(i); document.write("
"); }
Ρύζι. 8. Το αποτέλεσμα του τελεστή break στον βρόχο for

Για ένθετους βρόχους, η εντολή break. χρησιμοποιείται με μια ετικέτα που τερματίζει την ονομαζόμενη εντολή. Μια ετικέτα σάς επιτρέπει να βγείτε από οποιοδήποτε μπλοκ κώδικα. Μια ονομαζόμενη δήλωση μπορεί να είναι οποιαδήποτε δήλωση εκτός μιας εντολής break. . Η ετικέτα μπορεί να είναι το όνομα μιας δήλωσης if ή το όνομα ενός μπλοκ εντολών που περικλείεται σε σγουρές αγκύλες μόνο για να εκχωρηθεί μια ετικέτα σε αυτό το μπλοκ. Μεταξύ της αλλαγής λέξης-κλειδιού. και το όνομα της ετικέτας δεν επιτρέπει νέα γραμμή.

Outerloop: for(var i = 0; i< 10; i++) { innerloop: for(var j = 0; j < 10; j++) { if (j >3) διάλειμμα? // Έξοδος από τον πιο εσωτερικό βρόχο εάν (i == 2) σπάσει τον εσωτερικό βρόχο. // Το ίδιο πράγμα εάν (i == 4) σπάσει τον εξωτερικό βρόχο; // Έξοδος από τον εξωτερικό βρόχο document.write("i = " + i + " j = " + j + "
"); ) ) document.write("FINAL i = " + i + " j = " + j + "
");

7.2. Συνέχιση χειριστή.

Συνέχιση χειριστή. σταματά την τρέχουσα επανάληψη του βρόχου και ξεκινά μια νέα επανάληψη. Σε αυτήν την περίπτωση, ο βρόχος while επιστρέφει απευθείας στην κατάστασή του και ο βρόχος for πρώτα αξιολογεί την έκφραση της αύξησης και μετά επιστρέφει στη συνθήκη.

Αυτό το παράδειγμα θα εμφανίσει όλους τους ζυγούς αριθμούς:

Var i; for(i = 1; i<= 10; i++) { if (i % 2 !== 0) { continue; } document.write("
Ζυγός αριθμός= " + i);)
Ρύζι. 9. Το αποτέλεσμα του τελεστή συνέχεια στον βρόχο for

Συνέχιση χειριστή. μπορεί επίσης να χρησιμοποιηθεί σε ένθετους βρόχους με ετικέτα.

Outerloop: for (var i = 0; i "); for (var j = 0; j "); ) ) document.write("Όλοι οι βρόχοι ολοκληρώθηκαν"+"
");
Ρύζι. 10. Το αποτέλεσμα του τελεστή συνέχεια με ετικέτα

Η ιστορία του σχηματισμού της σύνταξης της σύγχρονης γλώσσας προγραμματισμού είναι παρόμοια με την κατανόηση των διαδικασιών σχηματισμού του Σύμπαντος. Τι και πώς ήταν στην αρχή... Τώρα όμως όλα είναι απλά και προσιτά.

Τελικά, ο αλγόριθμος είναι πάντα μια διαδοχική αλυσίδα εντολών. Ο παραλληλισμός στον προγραμματισμό είναι ένα σύνολο από κατά κάποιο τρόπο συνδυασμένες ακολουθίες. η διαδοχική ή παράλληλη αλυσίδα διοίκησης δεν ήταν ποτέ πιο πρακτική. Ετικέτες, μεταβάσεις και συνθήκες - όλα ήταν αρκετά για οποιαδήποτε λύση. Οι λειτουργικές γλώσσες έχουν καταστήσει αυτές τις ιδέες άσχετες, αλλά η ανάγκη επανάληψης τμημάτων κώδικα παραμένει.

Πρόγραμμα περιήγησης: DOM, η γλώσσα του + διακομιστής

Στο JavaScript, οι βρόχοι παραμένουν, αν και οι λειτουργικές ιδέες έχουν αποκτήσει ιδιαίτερο νόημα. Μπορεί να έχει μείνει κάτι από το "Lisp" και το "Prolog", αλλά πιθανότατα η περιοχή όπου ζει η JavaScript οδήγησε σε αυτό που υπάρχει, αλλά είναι αμφίβολο ότι αυτή είναι η τελευταία λύση.

Η JavaScript εκτελείται μέσα στο πρόγραμμα περιήγησης, το οποίο λαμβάνει τη σελίδα, την αναλύει στο DOM και εκτελεί το πρώτο σενάριο. Όλες οι άλλες σελίδες, συμπεριλαμβανομένων εκείνων που έχουν φορτωθεί σε αυτήν, είναι έργο του προγραμματιστή που χειρίζεται τη γλώσσα, μέσω της οποίας μπορεί να κληθεί ο κώδικας στον διακομιστή και να επιτευχθεί το αποτέλεσμα χρησιμοποιώντας τον μηχανισμό AJAX.

Το πρόγραμμα περιήγησης εκτελεί κώδικα JavaScript, ο οποίος μπορεί να χρησιμοποιήσει αντικείμενα του προγράμματος περιήγησης, συμπεριλαμβανομένου αυτού που μεταδίδει πληροφορίες στον διακομιστή και λαμβάνει μια απάντηση, η οποία μπορεί να είναι σήμανση HTML, στυλ και ο ίδιος ο κώδικας. Η απόκριση μπορεί να αναπαρασταθεί με πίνακες και αντικείμενα. Το νόημα της χρήσης βρόχων στο JavaScript έχει χαθεί, υπάρχουν πολλές ευκαιρίες χωρίς αυτούς και ο κίνδυνος να κολλήσετε το πρόγραμμα περιήγησης με μια ατελείωτη σειρά εντολών δεν είναι η καλύτερη λύση.

Οι ίδιοι οι βρόχοι υπάρχουν στις περισσότερες συντακτικές κατασκευές JavaScript· ο προγραμματιστής μπορεί να συμπληρώσει τις τυπικές κατασκευές με τις δικές του λειτουργίες.

Θέση JavaScript στο χώρο κώδικα

Ένας σύγχρονος προγραμματιστής δεν σκέφτεται καν ότι το while, do while, ...) που χρησιμοποιεί είναι τελικά μια σειρά από κύκλους επεξεργαστή, μια απλή ακολουθία δυαδικών πράξεων, που διακόπτονται από ελέγχους μετρητών, δηλαδή συνθήκες.

Δεν υπάρχει βρόχος ως τέτοιος σε επίπεδο γλώσσας μηχανής: υπάρχει ένας συνδυασμός συνηθισμένων εντολών, πράξεων υπό όρους και μεταβάσεων. Ένα επίπεδο πάνω, ανεξάρτητα από το εργαλείο που χρησιμοποιείται για την ανάπτυξη του προγράμματος περιήγησης και του διερμηνέα JavaScript, σίγουρα θα υπάρχουν βρόχοι. Επιπλέον, «κομμάτια κώδικα» θα παρουσιάζονται σε διαφορετικές χρονικές στιγμές και από διαφορετικές γενιές προγραμματιστών. Ο επάνω όροφος είναι το "κτήριο" JavaScript. Η σύνταξη του οποίου προσφέρει σύγχρονους βρόχους JavaScript.

Η JS είναι μια υπέροχη γλώσσα: πρακτική, μοντέρνα και με πλήρη χαρακτηριστικά. Η σύνταξη αυτού του εργαλείου περιλαμβάνει όλες τις κατασκευές που έχουν αντέξει στη δοκιμασία του χρόνου και έχουν γίνει το ακλόνητο θεμέλιο οποιουδήποτε αλγορίθμου. Είναι όμως πραγματικά απαραίτητοι οι κύκλοι; Η πρόοδος στον προγραμματισμό έθεσε συχνά στον εαυτό της ερωτήματα θεμελιώδους φύσης, αλλά μόνο σε ορισμένες περιπτώσεις βρήκε λύση.

Αντικειμενικοί λόγοι

Ένας κύκλος μπορεί να έχει μόνο δύο επιλογές: κατά συνθήκη ή με μετρητή, αλλά ουσιαστικά (στο χαμηλότερο επίπεδο) οποιοσδήποτε κύκλος είναι μόνο κατά συνθήκη. Σε ορισμένες γλώσσες υπάρχει ένας κύκλος "για καθεμία". Στο JavaScript, οι βρόχοι foreach αντιπροσωπεύονται από το prop στην κατασκευή αντικειμένου, αλλά μπορείτε να χρησιμοποιήσετε την παραλλαγή array.forEach(...).

Σε κάθε περίπτωση, υπάρχουν δύο επιλογές: ο προγραμματιστής που τελικά εκτελεί όλους τους αλγόριθμους του προγραμματιστή, ακόμη και αυτούς που γράφουν σε ερμηνευτικές γλώσσες, δεν έχει άλλες επιλογές για την επανάληψη της αλυσίδας των εντολών: μπορεί να εκτελέσει κάτι ξανά μέχρι:

  • ο μετρητής μετράει?
  • εφόσον πληρούται η προϋπόθεση.

Η JavaScript είναι ένας τυπικός διερμηνέας. Η ιδιαιτερότητά του: λειτουργεί μέσα στο πρόγραμμα περιήγησης, χρησιμοποιεί τα αντικείμενά του και σας επιτρέπει να εκτελείτε αλγόριθμους στην πλευρά του πελάτη, τόσο κατά τη φόρτωση της σελίδας στο πρόγραμμα περιήγησης όσο και κατά τη λειτουργία του.

Απλός βρόχος ένας προς έναν

Στο JavaScript, οι βρόχοι foreach μοιάζουν με την εφαρμογή μιας συνάρτησης σε έναν πίνακα:

Η χρήση τέτοιων κύκλων δεν δημιουργεί δυσκολίες. Τυπικά, δεν υπάρχει κύκλος ως τέτοιος. Υπάρχει μια διαδοχική κλήση συνάρτησης στα στοιχεία του πίνακα.

Βρόχο σε έναν πάγκο

Οι βρόχοι φαίνονται πιο οικείοι στο JavaScript:

Εδώ ο μετρητής είναι μια μεταβλητή της οποίας η τιμή αλλάζει σύμφωνα με έναν τύπο και μια συνθήκη είναι ένα σημάδι του τέλους του κύκλου. Ο τύπος και η συνθήκη δεν χρειάζεται να περιλαμβάνουν μεταβλητή βρόχου. Αλλά ο έλεγχος της στιγμής που τελειώνει ο κύκλος καθορίζεται πλήρως από το περιεχόμενό τους.

Βρόχοι υπό όρους

Η JavaScript προσφέρει μια επιλογή με ενώ ανάλογα με το πότε πρέπει να ελεγχθεί η συνθήκη. Εάν το σώμα του βρόχου μπορεί να μην εκτελεστεί ούτε μία φορά, αυτό είναι ένα πράγμα· εάν το σώμα πρέπει να εκτελεστεί τουλάχιστον μία φορά, αυτό είναι άλλο:

Στην πρώτη περίπτωση, κατά την ερμηνεία της κατασκευής while, η JavaScript ελέγχει πρώτα τη συνθήκη και εάν είναι αληθής, εκτελεί τον βρόχο. Στη δεύτερη περίπτωση, ο βρόχος θα εκτελεστεί πρώτος. Εάν, ως αποτέλεσμα της αλλαγής των μεταβλητών που καθορίζονται στη συνθήκη σχεδιασμού do while, θα αξιολογηθεί ως false και ο βρόχος θα σταματήσει να εκτελείται.

Τεράστιοι συνδυασμοί απλών αλγορίθμων

Το κύριο καθήκον (συστατικό μέρος) οποιουδήποτε αλγορίθμου είναι να βρει και μόνο τότε να αποφασίσει για το τι θα κάνει στη συνέχεια. Η πιο πρωτόγονη επιλογή αναζήτησης είναι η πρόσβαση σε μια μεταβλητή, το αποτέλεσμα λαμβάνεται απευθείας. Εάν υπάρχουν πολλές μεταβλητές ή έχει πολλές τιμές (ένας πίνακας), τότε για να επιλέξετε μια τιμή είναι απαραίτητο να βρείτε κάτι που θα καθορίσει την περαιτέρω συμπεριφορά του σεναρίου.

Ένα τόσο απλό δόγμα έγινε ένας βρόχος με μετρητή στο JavaScript είναι ένα είδος πανάκειας για όλα τα προβλήματα. Οι σύγχρονοι υπολογιστές είναι γρήγοροι. Υπάρχει αρκετός χρόνος για να τρέξετε σενάρια στο πρόγραμμα περιήγησης, δεν χρειάζεται να βιαστείτε. Είναι πιο εύκολο από ποτέ να περάσεις κάτι για χάρη κάτι. Ως αποτέλεσμα, στο J Οι βρόχοι AvaScript για βρόχους έχουν γίνει πολύ δημοφιλείς.

Δεν φαίνεται να υπάρχει τίποτα κακό σε αυτό. Αλλά πίσω από αυτή την προσέγγιση, η ουσία για την οποία είναι γραμμένος αυτός ή εκείνος ο αλγόριθμος χάνεται εύκολα. Τα δεδομένα δεν έχουν νόημα. Κάθε τι για το οποίο είναι γραμμένο οποιοδήποτε πρόγραμμα έχει νόημα.Υπερβολική χρήση στο J avaScript για βρόχους, ο προγραμματιστής ενδέχεται να μην αναγνωρίσει την απαιτούμενη οντότητα και να μην δημιουργήσει έναν κατάλληλο αλγόριθμο.

Λειτουργικότητα, μια άλλη αντανάκλαση της πραγματικότητας

Εφαρμογή Βρόχοι JavaScript, παραδείγματαΟ κώδικας του ίδιου τύπου μπορεί να αναπαρασταθεί από συναρτήσεις - ο αλγόριθμος θα μεταμορφωθεί αμέσως, το κύριο σώμα του σεναρίου θα μειωθεί σε μέγεθος, όλα θα γίνουν ευανάγνωστα και κατανοητά.

Αυτή δεν είναι μια ριζικά νέα λύση, αλλά στην ουσία δεν υπερβαίνει άλλες γλωσσικές κατασκευές. Ειδικότερα, ο Τζ Οι βρόχοι AvaScript μπορούν να βρεθούν στην κλασική συνάρτηση split():

var cResult = "9,8,7,6,5,4" ;
var aResult = cResult .split ( "," );

Δεν υπάρχει βρόχος εδώ, αλλά πώς αλλιώς μπορεί να επιτευχθεί αυτό εκτός από το να αναζητήσετε το σύμβολο "," και να το χρησιμοποιήσετε για να διαχωρίσετε έναν αριθμό από τον άλλο.

Αφαιρώντας τον τρόπο με τον οποίο αυτό υλοποιείται μέσα στη συνάρτηση split(), μπορείτε να συμπληρώσετε τη JavaScript με τη δική σας λειτουργικότητα που χρησιμοποιεί βρόχους, η οποία είναι πιο βολική από άποψη χρήσης. Είναι σημαντικό αυτή η προσέγγιση να οδηγεί στην ανάπτυξη λειτουργικότητας για κάθε εργασία, αντίστοιχα, αλλά η γενική θα εξακολουθεί να είναι με αυτήν την προσέγγιση.

Αυτές οι συναρτήσεις allt(), padc(), padl() και padr() είναι κάτι που δεν διαθέτει η JavaScript, αλλά μερικές φορές χρειάζεται να αφαιρέσετε κενά από μια συμβολοσειρά ή να ευθυγραμμίσετε το μήκος μιας συμβολοσειράς στα αριστερά, δεξιά ή δυο πλευρες. Τα σώματα αυτών των συναρτήσεων περιέχουν βρόχους JavaScript. Απλό, προσβάσιμο και ο αλγόριθμος που το χρησιμοποιεί δεν θα χαλάσει ποτέ.

Παραλλαγές συναρτήσεων για τη μετατροπή αριθμών από δεκαεξαδικό σε 10ο σύστημα αριθμών και αντίστροφα, πιο απλά, από μια μορφή δεδομένων σε άλλη, εκτελούνται εδώ χρησιμοποιώντας βρόχους do while. Πολύ συμπαγής και αποτελεσματική σύνταξη γλώσσας.

Σωστοί κύκλοι - μια αντανάκλαση της πραγματικότητας

Η JavaScript δεν ταιριάζει με άλλες γλώσσες προγραμματισμού και δεν διαφέρει στην ποικιλία των εκδόσεων και το πιο σημαντικό, προσπαθεί να μην αλλάξει τη σύνταξη, αλλά να την αναπτύξει και να την επεκτείνει.

Η νοοτροπία ενός προγραμματιστή που χρησιμοποιεί JS είναι διαφορετικήαπό τη σκέψη ενός προγραμματιστή PHP (ειδικά, και άλλες γλώσσες γενικά, εκτός από το ότι η "Prolog" και οι ακόλουθοί της δεν περιλαμβάνονται στο γενικό mainstream), όταν ο αλγόριθμος δεν περιορίζεται σε μεταβλητές, πίνακες, τελεστές εκχώρησης και κυκλικές κατασκευές.

Αν φανταστούμε ότι δεν υπάρχουν κύκλοι, αλλά το πρόβλημα πρέπει να λυθεί, τότε η απλούστερη επιλογή (τυφλός) είναι να υποθέσουμε ότι το πρόγραμμα επεξεργάζεται δεδομένα που είναι ένα σημείο ή ένα σύστημα σημείων στον χώρο πληροφοριών. Το τι είναι ένα σημείο και το τι είναι ένα σύστημα σημείων είναι θέμα μιας συγκεκριμένης θεματικής περιοχής. Για έναν προγραμματιστή, αυτή η διατριβή σημαίνει: υπάρχει ένα απλό δεδομένο και υπάρχει μια συλλογή απλών δεδομένων. Φυσικά, ένα απλό δεδομένο ενός επιπέδου θα είναι ένα σύστημα για ένα επίπεδο κάτω και ένα σημείο για ένα επίπεδο πάνω.

Με αυτή την προσέγγιση, μέλημα του σημείου είναι να εκδηλώσει την ουσία του μέσα από τις μεθόδους του. Όταν ένα σημείο βρίσκεται σε ένα υπερσύστημα, τότε η λειτουργία του συστήματος είναι να εκδηλώνει την ουσία του ως μια συλλογή ουσιών των σημείων που περιλαμβάνονται σε αυτό.

Αυτή η προσέγγιση είναι τόσο παλιά όσο και η ιδέα των γλωσσών προγραμματισμού, αλλά δεν έχει ακόμη αντικατοπτριστεί επαρκώς στον προγραμματισμό. Πολλοί προγραμματιστές σκέφτονται σωστά, αλλά το αποτέλεσμα της δημιουργικότητάς τους αφήνει πολλά να είναι επιθυμητά.

Βοηθάει να φοράς δεμένα μάτια μερικές φορές για να βλέπεις τον κόσμο!

Κύκλοι

Για να κατανοήσουμε την επίδραση των εντολών υπό όρους, προτείναμε να τις φανταστούμε ως διχάλες στο δρόμο κατά μήκος του οποίου κινείται ο διερμηνέας JavaScript. Οι βρόχοι μπορούν να θεωρηθούν ως μια αναστροφή στο δρόμο που σας μεταφέρει πίσω, αναγκάζοντας τον διερμηνέα να περάσει από το ίδιο κομμάτι κώδικα ξανά και ξανά.

Η JavaScript έχει τέσσερις βρόχους: while, do/while, for και for/in. Μία από τις ακόλουθες υποενότητες είναι αφιερωμένη σε καθεμία από αυτές. Μια κοινή χρήση των βρόχων είναι η διέλευση των στοιχείων ενός πίνακα.

ενώ βρόχος

Η πρόταση if είναι η βασική πρόταση υπό όρους στο JavaScript και ο βασικός βρόχος για την JavaScript είναι ο βρόχος while. Έχει την εξής σύνταξη:

ενώ (έκφραση) (οδηγία)

Ο βρόχος while ξεκινά με την αξιολόγηση μιας έκφρασης. Εάν αυτή η έκφραση αξιολογηθεί ως ψευδής, ο διερμηνέας παραλείπει τη δήλωση που αποτελεί το σώμα του βρόχου και προχωρά στην επόμενη πρόταση του προγράμματος. Εάν η παράσταση αξιολογηθεί ως true, τότε εκτελείται η πρόταση που σχηματίζει το σώμα του βρόχου, τότε ο έλεγχος μεταφέρεται στην αρχή του βρόχου και η έκφραση αξιολογείται ξανά. Με άλλα λόγια, ο διερμηνέας εκτελεί την εντολή του σώματος του βρόχου ξανά και ξανά, εφόσον η τιμή της έκφρασης παραμένει αληθής. Σημειώστε ότι είναι δυνατό να δημιουργήσετε έναν άπειρο βρόχο χρησιμοποιώντας τη σύνταξη while(true).

Συνήθως δεν θέλετε ο διερμηνέας JavaScript να εκτελεί την ίδια λειτουργία ξανά και ξανά. Σχεδόν σε κάθε βρόχο, με κάθε επανάληψη του βρόχου, μία ή περισσότερες μεταβλητές αλλάζουν τις τιμές τους. Επειδή η μεταβλητή αλλάζει, αυτό που κάνει η εντολή μπορεί να διαφέρει κάθε φορά που περνά μέσα από το σώμα του βρόχου.

Επιπλέον, εάν οι μεταβλητές που τροποποιούνται υπάρχουν στην έκφραση, η τιμή της παράστασης μπορεί να αλλάξει με κάθε πέρασμα του βρόχου. Αυτό είναι σημαντικό γιατί διαφορετικά η έκφραση της οποίας η τιμή ήταν true δεν θα αλλάξει ποτέ και ο βρόχος δεν θα τελειώσει ποτέ! Παρακάτω είναι ένα παράδειγμα βρόχου while που εκτυπώνει τους αριθμούς από το 0 έως το 9:

Var count = 0; ενώ (μετρ

Όπως μπορείτε να δείτε, η μεταβλητή count ορίζεται στο 0 στην αρχή και, στη συνέχεια, η τιμή της αυξάνεται κάθε φορά που εκτελείται το σώμα του βρόχου. Αφού εκτελεστεί ο βρόχος 10 φορές, η έκφραση θα επιστρέψει false (δηλαδή, η μεταβλητή count δεν είναι πλέον μικρότερη από 10), η εντολή while θα τελειώσει και ο διερμηνέας θα προχωρήσει στην επόμενη πρόταση του προγράμματος. Οι περισσότεροι βρόχοι έχουν μεταβλητές μετρητή παρόμοιες με το count. Τις περισσότερες φορές, οι μεταβλητές που ονομάζονται i, j και k λειτουργούν ως μετρητές βρόχου, αν και για να γίνει πιο κατανοητός ο κώδικας του προγράμματος, θα πρέπει να δώσετε στους μετρητές περισσότερα περιγραφικά ονόματα.

do/while βρόχος

Ένας βρόχος do/while είναι παρόμοιος από πολλές απόψεις με έναν βρόχο while, με τη διαφορά ότι η έκφραση του βρόχου δοκιμάζεται στο τέλος και όχι στην αρχή. Αυτό σημαίνει ότι το σώμα του βρόχου εκτελείται πάντα τουλάχιστον μία φορά. Αυτή η οδηγία έχει την ακόλουθη σύνταξη:

do (δήλωση) while (έκφραση);

Ο βρόχος do/while χρησιμοποιείται λιγότερο συχνά από τον βρόχο αδελφής while. Το γεγονός είναι ότι στην πράξη, η κατάσταση όταν είστε βέβαιοι εκ των προτέρων ότι θα χρειαστεί να εκτελέσετε το σώμα του βρόχου τουλάχιστον μία φορά είναι κάπως ασυνήθιστη. Παρακάτω είναι ένα παράδειγμα χρήσης ενός βρόχου do/while:

Συνάρτηση printArray(a) ( var len = a.length, i = 0; if (len == 0) console.log("Empty array"); else (do ( console.log(a[i]); ) ενώ (++θ

Υπάρχουν δύο διαφορές μεταξύ ενός βρόχου do/while και ενός κανονικού βρόχου while. Πρώτον, ένας βρόχος do απαιτεί τόσο τη λέξη-κλειδί do (για να επισημάνετε την αρχή του βρόχου) όσο και τη λέξη-κλειδί while (για να επισημάνετε το τέλος του βρόχου και να καθορίσετε μια συνθήκη). Δεύτερον, σε αντίθεση με έναν βρόχο while, ένας βρόχος do τελειώνει με ένα ερωτηματικό. Ένας βρόχος while δεν χρειάζεται να τελειώνει με ερωτηματικό εάν το σώμα του βρόχου περικλείεται σε σγουρά τιράντες.

για βρόχο

Ένας βρόχος for είναι μια κατασκευή βρόχου που είναι συχνά πιο βολική από έναν βρόχο while. Ο βρόχος for διευκολύνει τη δημιουργία βρόχων που ακολουθούν ένα μοτίβο κοινό για τους περισσότερους βρόχους. Οι περισσότεροι βρόχοι έχουν κάποιο είδος μεταβλητής μετρητή. Αυτή η μεταβλητή αρχικοποιείται πριν από την έναρξη του βρόχου και ελέγχεται πριν από κάθε επανάληψη. Τέλος, η μεταβλητή μετρητή αυξάνεται ή τροποποιείται με άλλο τρόπο στο τέλος του σώματος του βρόχου, λίγο πριν ελεγχθεί ξανά η μεταβλητή. Η προετοιμασία, η επαλήθευση και η ενημέρωση είναι οι τρεις βασικές λειτουργίες που εκτελούνται σε μια μεταβλητή βρόχου. Η δήλωση for καθιστά αυτά τα τρία βήματα ρητά μέρος της σύνταξης βρόχου:

για (αρχικοποίηση, έλεγχος, αύξηση) (οδηγία)

Το Initialize, το check και το increment είναι τρεις εκφράσεις (που χωρίζονται με ερωτηματικά) που είναι υπεύθυνες για την προετοιμασία, τον έλεγχο και την αύξηση μιας μεταβλητής βρόχου. Η τοποθέτησή τους στην πρώτη γραμμή του βρόχου διευκολύνει την κατανόηση του τι κάνει ο βρόχος for και σας εμποδίζει να ξεχάσετε να αρχικοποιήσετε ή να αυξήσετε μια μεταβλητή βρόχου.

Ο ευκολότερος τρόπος για να εξηγήσετε τον βρόχο for είναι να εμφανίσετε τον ισοδύναμο βρόχο while:

αρχικοποίηση? while(check) (οδηγία, αύξηση, )

Με άλλα λόγια, η έκφραση αρχικοποίησης αξιολογείται μία φορά πριν ξεκινήσει ο βρόχος. Αυτή η έκφραση είναι συνήθως μια έκφραση με παρενέργειες (συνήθως μια ανάθεση). Η JavaScript επιτρέπει επίσης στην έκφραση αρχικοποίησης να είναι μια δήλωση δήλωσης μεταβλητής var, επομένως είναι δυνατό να δηλωθεί και να αρχικοποιηθεί ένας μετρητής βρόχου ταυτόχρονα.

Η δοκιμαστική έκφραση αξιολογείται πριν από κάθε επανάληψη και καθορίζει εάν θα εκτελεστεί το σώμα του βρόχου. Εάν το αποτέλεσμα της δοκιμής είναι αληθές, εκτελείται η εντολή που είναι το σώμα του βρόχου. Στο τέλος του βρόχου, αξιολογείται η έκφραση προσαύξησης. Για να έχει νόημα αυτή η έκφραση, πρέπει να είναι μια έκφραση με παρενέργειες. Συνήθως πρόκειται είτε για έκφραση ανάθεσης είτε για έκφραση που χρησιμοποιεί τον τελεστή ++ ή --.

Μπορείτε επίσης να εκτυπώσετε τους αριθμούς 0 έως 9 χρησιμοποιώντας έναν βρόχο for, όπως φαίνεται παρακάτω, σε αντίθεση με τον ισοδύναμο βρόχο while που φαίνεται στο προηγούμενο παράδειγμα:

Για (var count = 0, count

Φυσικά, οι βρόχοι μπορεί να είναι πολύ πιο περίπλοκοι από αυτά τα απλά παραδείγματα και μερικές φορές πολλές μεταβλητές αλλάζουν σε κάθε επανάληψη του βρόχου. Αυτή η κατάσταση είναι η μόνη φορά στη JavaScript όπου χρησιμοποιείται συχνά ο τελεστής κόμματος - σας επιτρέπει να συνδυάσετε πολλαπλές παραστάσεις αρχικοποίησης και αύξησης σε μια ενιαία έκφραση κατάλληλη για χρήση σε έναν βρόχο for:

Var i,j; για (i = 0, j = 0; i

για/σε βρόχο

Ο βρόχος for/in χρησιμοποιεί τη λέξη-κλειδί for, αλλά είναι εντελώς διαφορετικός από έναν κανονικό βρόχο for. Ο βρόχος for/in έχει την ακόλουθη σύνταξη:

για (μεταβλητή σε αντικείμενο) (δήλωση)

Η μεταβλητή εδώ είναι συνήθως το όνομα της μεταβλητής, αλλά μπορείτε επίσης να χρησιμοποιήσετε τη δήλωση var, η οποία δηλώνει μια μεμονωμένη μεταβλητή. Η παράμετρος αντικειμένου είναι μια έκφραση που επιστρέφει ένα αντικείμενο. Και ως συνήθως, μια εντολή είναι μια εντολή ή μπλοκ εντολών που σχηματίζει το σώμα ενός βρόχου.

Για να διασχίσετε τα στοιχεία ενός πίνακα, είναι φυσικό να χρησιμοποιήσετε έναν κανονικό βρόχο for:

Var arr = ; για (var i = 0; i

Η δήλωση for/in σας επιτρέπει επίσης φυσικά να διασχίσετε τις ιδιότητες ενός αντικειμένου:

// Δημιουργία νέου αντικειμένου var obj = (όνομα:"Alex", κωδικός πρόσβασης:"12345" ); for (var i σε obj) ( // Εκτύπωση της τιμής κάθε ιδιότητας αντικειμένου console.log(obj[i]); )

Για την εκτέλεση μιας πρότασης for/in, ο διερμηνέας JavaScript αξιολογεί πρώτα το αντικείμενο έκφρασης. Εάν επιστρέψει μηδενικό ή απροσδιόριστο, ο διερμηνέας παραλείπει τον βρόχο και προχωρά στην επόμενη πρόταση. Εάν η παράσταση επιστρέφει μια απλή τιμή, μετατρέπεται σε ένα ισοδύναμο αντικείμενο περιτυλίγματος. Διαφορετικά, η έκφραση επιστρέφει ένα αντικείμενο. Στη συνέχεια, ο διερμηνέας εκτελεί μία επανάληψη του βρόχου για κάθε απαριθμήσιμη ιδιότητα του αντικειμένου. Πριν από κάθε επανάληψη, ο διερμηνέας αξιολογεί την τιμή της έκφρασης, την αποθηκεύει σε μια μεταβλητή και της εκχωρεί ένα όνομα ιδιότητας (μια τιμή συμβολοσειράς).

mob_info