Το JavaScript είναι μια γλώσσα προγράμματος περιήγησης, οπότε δεν είναι όλαη εργασία χρειάζεται τις δικές της μεταβλητές, πίνακες και αντικείμενα. Σε πολλές περιπτώσεις, αρκεί απλώς η χρήση του DOM (Document Object Model). Αλλά ακόμη και σε τέτοιες περιπτώσεις, η σωστή περιγραφή των δεδομένων που χρησιμοποιούνται καθιστά πάντα το πρόγραμμα πιο τέλειο, πιο βολικό στη χρήση και επακόλουθη βελτίωση.
Οι λέξεις έχουν σημασία, αλλά όταν ονομάζουμε κάτι στο πρόγραμματι υπόκειται σε χρήση και αλλαγή, είναι σκόπιμο να περιοριστούμε στις λέξεις "δεδομένα" και "μεταβλητές". Λοιπόν, τι θα είναι - JavaScript Array, Object ή απλά Integer - εξαρτάται από την εργασία, πιο συγκεκριμένα από το συγκεκριμένο μέρος σε αυτό.
Οι προγραμματιστές συνηθίζουν να χειρίζονται δεδομένα.Υπήρχαν και μέχρι σήμερα υπάρχουν μεταβλητές σε ένα ευρύ φάσμα αναπαραστάσεων (συμβολοσειρές, σύμβολα, αριθμοί, ημερομηνίες ...), κατά κανόνα, οι πίνακες και (για τις τελευταίες δύο δεκαετίες) αντικείμενα τοποθετήθηκαν ξεχωριστά.
Κάποια στιγμή, ισχυρή πληκτρολόγησηΤα δεδομένα έχουν γίνει ένα λείψανο, και τώρα σε κάθε σύγχρονη γλώσσα τα δεδομένα μπορούν να αλλάξουν όχι μόνο το περιεχόμενο, αλλά και τον τύπο. Καλό ή κακό, θα φανεί, αλλά η έντονη πληκτρολόγηση έχει τα θετικά της χαρακτηριστικά. Ωστόσο, εάν συνέβη, τότε γιατί να μην "rattype" ολόκληρη η διαδικασία;
Σημασιολογικά, δηλαδή έξωσύνταξη, οποιαδήποτε μεταβλητή έχει σημασία. Και αλλάζει σε οποιαδήποτε κατάσταση. Η ακολουθία αλλαγών είναι ήδη μια ποσότητα, η οποία σε όρους JavaScript είναι πίνακας στοιχείων.
Με άλλα λόγια, εάν ο προγραμματιστής αποφασίσει να μην προσθέσειτιμές στον τύπο μιας μεταβλητής και θέστε στη γλώσσα τη φροντίδα της σωστής και έγκαιρης μετατροπής των τύπων, τότε γιατί να μην απλοποιήσετε καθόλου: υπάρχουν μόνο δεδομένα και τι θα είναι στο σημείο εφαρμογής - αριθμός, συμβολοσειρά, πίνακας ή αντικείμενο - εξαρτάται από τον κώδικα να αποφασίσει. Ακόμη πιο σωστό: το δεδομένο πρέπει από μόνο του να καθορίσει τι μπορεί να γίνει με αυτό και πώς ακριβώς.
Οι απλές μεταβλητές είναι διαφόρων τύπων. Οι μετατροπές τύπου εκτελούνται αυτόματα όταν χρειάζεται.
Αυτό το παράδειγμα περιγράφει μια απλή μεταβλητή s, σεπου θα αποτελέσει το αποτέλεσμα της εργασίας με το JavaScript Array aCheck. Η μεταβλητή i περιγράφεται απευθείας στον βρόχο aCheck. Εδώ τα στοιχεία του πίνακα (που δημιουργούνται χρησιμοποιώντας το JavaScript Array push build) είναι τρεις τιμές διαφορετικών τύπων. Ο πρώτος βρόχος εκτυπώνει τα ονόματα των τύπων στη συμβολοσειρά s, το δεύτερο - τις πραγματικές τιμές. Η μετατροπή τύπου γίνεται αυτόματα.
Στο JavaScript, το Array δεν είναι συσχετισμένος πίνακας. Η πρόσβαση στα στοιχεία γίνεται με αριθμητικά πλήκτρα, ο μέγιστος αριθμός στοιχείων είναι 232, αλλά δεν πρέπει να πειραματιστείτε με τις περιοριστικές ποσότητες στοιχείων.
Ένας καλός αλγόριθμος έχει πάντα μια παρατηρήσιμη ποσότητα δεδομένων και η κατασκευή μήκους JavaSscript Array εισήχθη στη σύνταξη καθόλου για τον έλεγχο του μεγέθους του πίνακα στο περιεχόμενο του.
Η τιμή aCheck.το μήκος δεν θα είναι πάντα ο πραγματικός αριθμός στοιχείων. Στο JavaScript, ένα Array μπορεί να περιέχει όσα και τι έχει σταλεί εκεί, αλλά μερικές φορές πρέπει να εργαστείτε σκληρά για να μάθετε πόσο.
Σε αυτό το παράδειγμα, η έκφραση aCheck [5] αυξάνει τον πίνακα σε έξι στοιχεία. Οι ελπίδες ότι η συνάρτηση μήκους θα δώσει την τιμή 4 δεν είναι δικαιολογημένες.
Επισήμως, οι Πίνακες JavaScript μπορούν να είναι μόνο συνηθισμένοι, δηλαδή στα στοιχεία προσπελάζονται από αριθμητικούς δείκτες. Ωστόσο, στην πραγματικότητα, μπορείτε να χρησιμοποιήσετε συσχετιστικές ιδέες.
Ένα πολύ απλό και απλό έργο ταξινόμησης χορδώνπίνακες ανά στήλες μπορούν να επιλυθούν μέσω ενός συσχετισμένου πίνακα. Μια κουκκίδα σε κύκλο δίπλα στο όνομα της στήλης δεν σημαίνει ταξινόμηση, πάνω βέλος - σε φθίνουσα σειρά και κάτω βέλος - σε αύξουσα σειρά. Κάνοντας κλικ σε μια στήλη αλλάζει κατεύθυνση (υλοποίηση JavaScript: Ταξινόμηση συστοιχίας).
В этом примере в массиве cSortCols формируются οδηγίες ταξινόμησης για κάθε στήλη (S, C, W, ...). Τιμές κατεύθυνσης μόνο u, d. Στην κατασκευή in, τα πάντα είναι ραμμένα σε μία γραμμή (τόσο ο κωδικός στήλης όσο και η κατεύθυνση ταξινόμησης). Αυτός ο βρόχος περιβάλλει όλα τα στοιχεία της συστοιχίας και δεν χρειάζεται να χρησιμοποιήσετε τη λειτουργία μήκους σειράς JavaScript.
Είναι ωραία πρακτική να γράφετε "var xMass = [];" ή"var yArr = {};". Στην πρώτη περίπτωση, θα οριστεί ένας συνηθισμένος πίνακας, στη δεύτερη περίπτωση - ένας συσχετιστικός. Μπορείτε επίσης να χρησιμοποιήσετε την παραλλαγή JavaScript New Array (), αλλά συνήθως αυτή η κατασκευή χρησιμοποιείται για άλλους σκοπούς, κυρίως για εργασία με αντικείμενα.
Ο πίνακας που δημιουργήθηκε μπορεί να συμπληρωθεί αμέσωςμεταβλητές, αλλά, κατά κανόνα, η πλήρωση και ο χειρισμός του πίνακα στη δυναμική, κατά την εκτέλεση του προγράμματος, είναι σχετική. Εάν χρειάζεστε ταξινόμηση, μπορείτε να χρησιμοποιήσετε την κατασκευή JavaScript Sort Array, η οποία δεν είναι ευέλικτη, αλλά σας επιτρέπει να ελέγχετε τη διαδικασία μέσω της δικής της λειτουργίας.
Κλήση: arr.sort () ταξινομείται με σειρά χαρακτήρων ASCII. Αντίστροφη λειτουργία - παραλλαγές στοιχείων: arr.reverse (). Αυτή η συνάρτηση αντιστρέφει τη σειρά των στοιχείων του πίνακα.
Και στις δύο περιπτώσεις, η λέξη arr σημαίνει έναν πίνακα.Στην πρώτη περίπτωση, μπορείτε να χρησιμοποιήσετε τη δική σας λειτουργία ταξινόμησης, δηλαδή, η κλήση arr.sort (myfunc (a, b)) θα καλέσει τη δική σας λειτουργία myfuct, η οποία θα πρέπει να επιστρέψει το αποτέλεσμα ανάλογα με τα δεδομένα: a και b. Εάν το πρώτο είναι μικρότερο από το δεύτερο, τότε -1, αν το αντίστροφο, τότε 1, και αν a = b, τότε 0. Εδώ το κριτήριο σύγκρισης ορίζεται από τον προγραμματιστή στη συνάρτηση myfunc.
Μια συνάρτηση που καλείται κατά τη διαδικασία ταξινόμησης μπορείεκτελεί διάφορες ενέργειες. Από την άποψη της κατασκευής στην οποία εφαρμόζεται, δεν χρειάζεται να ανταποκρίνεται στις παραμέτρους εισόδου και το αποτέλεσμα δεν είναι μόνο οι τρεις αριθμοί -1, 1 και 0. Όταν εφαρμόζεται σε μια σειρά κυκλικά σε κάθε στοιχείο, μπορεί να ξαναχτίσει τον πίνακα.
Εάν φανταζόμαστε ότι ένας πίνακας έχει μια συγκεκριμένη έννοια, μια συγκεκριμένη δομή δεδομένων, τότε το JavaScript Array μετατρέπεται σε μια μεταβλητή με μεταβλητό περιεχόμενο.
Εάν λάβουμε ως βάση τη χρήση του πρώτου ήτο τελευταίο στοιχείο του πίνακα ως το περιεχόμενό του, τότε η εκτέλεση της συνάρτησης ταξινόμησης μπορεί να μετατρέψει τον πίνακα έτσι ώστε το πρώτο / τελευταίο στοιχείο να είναι ένα διαφορετικό στοιχείο, όπως απαιτείται από τις συνθήκες του προβλήματος.
Μια τέτοια ιδέα μπορεί να επιτρέψει την ανοικοδόμηση του αλγορίθμουλύσεις με τέτοιο τρόπο, ιδίως, ώστε να μην χρειάζεται να χρησιμοποιήσετε τις κατασκευές εάν () {} αλλιώς {} και αλλάξετε () {περίπτωση "": ...; υπόθεση "": ...; ...}.
Με το χειρισμό των περιεχομένων ενός πίνακα, μπορείτε να μετακινήσετε στοιχεία μέσα σε αυτό, αλλάζοντας έτσι την εξωτερική λειτουργικότητα που μπορείτε να αποκτήσετε μέσω του πρώτου ή του τελευταίου στοιχείου.
Οποιαδήποτε γλώσσα είναι καλή γιατί επιτρέπει όχι μόνοαλλάξτε τη δομή και το περιεχόμενο των δεδομένων, αλλά και τον πραγματικό κώδικα. Η ιδέα να θεωρηθεί μια μεταβλητή ως αφαίρεση, δηλαδή, αρχικά χωρίς να προβλέπεται η τυπική της κατάσταση, ανοίγει νέους ορίζοντες.
Ξεκινώντας με μια αφαίρεση, μια μεταβλητή, ένας πίνακας ή ένα αντικείμενο σάς επιτρέπει να αντιπροσωπεύετε τη διαδικασία επεξεργασίας δεδομένων ως συνάρτηση αυτών των δεδομένων και στη δυναμική.
Για παράδειγμα, διαβάζοντας το κείμενο, μπορείτε να περιγράψετε το δεδομένο"κείμενο", το οποίο θα χωριστεί σε προτάσεις - το κριτήριο "dot" (στο πλαίσιο, δηλαδή, λαμβάνοντας υπόψη την αποδεκτή σύνταξη των προτάσεων). Οι προτάσεις θα αναλυθούν σε φράσεις (σε περιβάλλον, κόμμα και αντίστοιχη σύνταξη). Περαιτέρω λέξεις και γράμματα.
Αποτέλεσμα:μπορείτε να εργαστείτε στο επίπεδο των κειμένων, των προτάσεων, των λέξεων. Σε κάθε επίπεδο, μπορείτε να δημιουργήσετε συναρτήσεις "μοναδικότητας", οι οποίες θα σας επιτρέψουν να αναζητήσετε παρόμοιες ή παρόμοιες. Μπορείτε να δημιουργήσετε συναρτήσεις για την εφαρμογή προτάσεων, φράσεων σε άλλα δεδομένα.
Ο σύγχρονος προγραμματισμός δεν είναι πλέον δόγμα, αλλάΤο γεγονός ότι οι συντακτικές κατασκευές που δημιουργήθηκαν τις τελευταίες δεκαετίες και η συσσωρευμένη εμπειρία ανοίγουν νέους ορίζοντες που δεν οραματίζονται οι προγραμματιστές γλωσσών, πρέπει να ανακαλυφθεί και να χρησιμοποιηθεί.