Η JavaScript είναι μια συγχωρητική γλώσσα. Κάποια από τη σύνταξή της είναι προαιρετική και η γλώσσα ανακάμπτει από λάθη με μεγαλύτερη χάρη από πολλές άλλες. Αλλά αυτό το κράτημα με το χέρι συνοδεύεται από μια ποινή: μπορεί να είναι ευκολότερο να εισαχθούν σφάλματα και ο ασυνεπής κώδικας είναι πιο δύσκολο να διαβαστεί.
Ευτυχώς, εάν θέλετε να ασκήσετε περισσότερη πειθαρχία, υπάρχει ένας εύκολος τρόπος για να το κάνετε: αυστηρή λειτουργία. Η αυστηρή λειτουργία είναι ένας τρόπος να ζητάτε από την JavaScript να αντιδρά πιο αποφασιστικά όταν αντιμετωπίζει προβλήματα στον κώδικά σας.
Τι είναι η αυστηρή λειτουργία;
Πολλές γλώσσες χρησιμοποιούν την έννοια της αυστηρής λειτουργίας: μια λειτουργία που αξιολογεί και εκτελεί τον κώδικα πιο αυστηρά. Ίσως να είστε εξοικειωμένοι με τον αυστηρό τύπο HTML, ο οποίος καταργεί ορισμένα στοιχεία και χαρακτηριστικά.
Η Perl, μια άλλη ερμηνευτική γλώσσα σεναρίου, έχει από καιρό τη δική της αυστηρή λειτουργία. Αυτή η λειτουργία απαγορεύει ορισμένους τύπους μη ασφαλών εκφράσεων.
Πώς μπορώ να χρησιμοποιήσω την αυστηρή λειτουργία σε JavaScript;
Μέσα σε ένα σενάριο, βάλτε μια δήλωση "χρήση αυστηρής" ακριβώς στην κορυφή, πριν από οποιαδήποτε άλλη δήλωση:
// όλο αυτό το σενάριο θα είναι σε αυστηρή λειτουργία
«χρήση αυστηρή»·
Σημειώστε ότι μπορείτε να συμπεριλάβετε ένα σχόλιο πριν από αυτό, αλλά όχι δηλώσεις. Μπορείτε να ενεργοποιήσετε την αυστηρή λειτουργία σε ένα αρχείο JavaScript ή στην αρχή ενός μπλοκ σεναρίου σε ένα αρχείο HTML. Μπορείτε επίσης να ενεργοποιήσετε την αυστηρή λειτουργία ανά συνάρτηση:
λειτουργία αυστηρή() {
// Σύνταξη αυστηρής λειτουργίας σε επίπεδο συνάρτησης
«χρήση αυστηρή»·
επιστροφή "Αυτή η λειτουργία είναι αυστηρή"?
}
συνάρτηση loose() {
επιστροφή "Αυτή η λειτουργία ΔΕΝ είναι αυστηρή"?
}
Αφού ενεργοποιήσετε την αυστηρή λειτουργία, βεβαιωθείτε ότι έχετε δοκιμάσει τον κωδικό σας. Εάν εργάζεστε με τον ιστό, ανοίξτε ένα Κονσόλα JavaScript, ώστε να μπορείτε να εντοπίσετε τυχόν νέα σφάλματα.
Τι κάνει η αυστηρή λειτουργία JavaScript;
Εν ολίγοις, η αυστηρή λειτουργία θα είναι λιγότερο επιεική για ορισμένους τύπους προβληματικού κώδικα. Αντί να αγνοήσετε προβλήματα και να συνεχίσετε την εκτέλεση, ορισμένα σφάλματα θα σταματήσουν το σενάριο. Αυτό είναι συχνά πιο ασφαλές από το να συνεχίζεται σε ανεπιθύμητες συνθήκες.
Αποτρέπει τυχαίες παγκόσμιες
Το καλύτερο παράδειγμα από το οποίο προστατεύει η αυστηρή λειτουργία είναι η δημιουργία τυχαίων καθολικών μεταβλητών. Σε κανονική εκτέλεση, αυτός ο κώδικας:
myVar = 17;
Θα δημιουργήσει μια ιδιότητα με το όνομα myVar στο καθολικό αντικείμενο, υποθέτοντας ότι δεν έχετε δηλώσει προηγουμένως το myVar. Σε ένα πρόγραμμα περιήγησης ιστού, το καθολικό αντικείμενο είναι συνήθως το παράθυρο:
console.log (window.myVar);
>> 17
Εάν συμπεριλάβετε μια δήλωση "χρήση αυστηρής", ωστόσο, θα δείτε ένα σφάλμα στην κονσόλα, κάτι σαν:
Uncapped ReferenceError: το myVar δεν έχει οριστεί
Ο λόγος που αυτό είναι τόσο χρήσιμο είναι ότι επιλέγει μια συνηθισμένη περίπτωση τυπογραφικού λάθους. Είναι εύκολο να πληκτρολογήσετε λανθασμένα ένα όνομα μεταβλητής και πολλές γλώσσες θα μπορούσαν να μας εντοπίσουν σε ένα τέτοιο σφάλμα.
Αλλά η JavaScript, από προεπιλογή, απλώς αναλαμβάνει το εύρος του καθολικού αντικειμένου και συνεχίζει σαν να μην υπάρχει τίποτα λάθος. Κάποιος κώδικας μπορεί σκόπιμα να εξαρτάται από αυτήν τη συμπεριφορά, κάτι που πρέπει να γνωρίζετε όταν αποφασίζετε να χρησιμοποιήσετε αυστηρή λειτουργία.
Δείτε επίσης: Πώς να διατηρήσετε τον κωδικό σας καθαρό με την ενθυλάκωση αντικειμένων
Καθιστά σαφή την αποτυχία
Κάποια συμπεριφορά στο JavaScript αποτυγχάνει, αλλά το κάνει σιωπηλά. Μπορεί να μην γνωρίζετε για τέτοια σφάλματα εκτός και αν τα ελέγχετε συγκεκριμένα. Για παράδειγμα, το NaN είναι μια ειδική ιδιότητα του καθολικού αντικειμένου που αντιπροσωπεύει έναν μη έγκυρο αριθμό. Αυτή η ιδιότητα είναι μόνο για ανάγνωση, αλλά μπορείτε ακόμα να προσπαθήσετε να της γράψετε:
NaN = 2;
>> 2
Αλλά παρόλο που φαίνεται ότι αυτή η αποστολή πέτυχε, δεν τα κατάφερε:
NaN
>> NaN
Σε αυστηρή λειτουργία, θα λάβετε ένα πραγματικό σφάλμα που θα σας λέει ότι δεν μπορείτε να αντιστοιχίσετε στο NaN. Αυτός ο κώδικας χρησιμοποιεί μια συνάρτηση για να μπορείτε να επιδείξετε αυστηρή λειτουργία στην κονσόλα:
javascript
συνάρτηση badNaN() { "χρήση αυστηρής"; παράθυρο. NaN = 2; }
>> απροσδιόριστο
badNan()
>> Uncapped TypeError: Δεν είναι δυνατή η ανάθεση στην ιδιότητα "NaN" μόνο για ανάγνωση του αντικειμένου "#"
στο badNaN (:1:46)
στο :1:1
Αυτό είναι ένα κλασικό παράδειγμα που δείχνει, ενώ η άγνοια μπορεί να είναι ευτυχία, μερικές φορές είναι καλύτερο να γνωρίζουμε αν κάτι πάει στραβά.
Προειδοποιεί για διπλότυπες παραμέτρους
Το τελευταίο παράδειγμα ασχολείται με ένα ελάχιστα γνωστό χαρακτηριστικό της JavaScript. Μπορεί να σας εκπλήξει όταν μάθετε ότι τα ονόματα παραμέτρων δεν χρειάζεται να είναι μοναδικά:
function dupeParam (a, a, c) { console.log (a); }
>> απροσδιόριστο
dupeParam (2, 4, 8)
>> 4
Σημειώστε ότι η JavaScript εκχωρεί την πιο πρόσφατη τιμή σε μια διπλότυπη παράμετρο. Τώρα, αυτή η συμπεριφορά δεν είναι ιδιαίτερα χρήσιμη. Στην πραγματικότητα, θα ήταν πιο χρήσιμο για την JavaScript να μας πει ότι πρόκειται για σφάλμα και αυτό ακριβώς κάνει η αυστηρή λειτουργία:
function dupeParam (a, a, c) { "χρήση αυστηρής"; }
<< Uncapped SyntaxError: Δεν επιτρέπεται το διπλότυπο όνομα παραμέτρου σε αυτό το πλαίσιο
Χρησιμοποιήστε την αυστηρή λειτουργία για επιπλέον εμπιστοσύνη στον κώδικα
Οι καλές πρακτικές και τα μέσα επιβολής τους πάνε χέρι-χέρι. Σε ορισμένα πλαίσια, όπως ένας επαγγελματικός ρόλος προγραμματισμού, θα θέλετε να ασκήσετε όσο το δυνατόν περισσότερη πειθαρχία. Ακόμα κι αν εργάζεστε απλώς σε ένα έργο ανοιχτού κώδικα για χόμπι, ο συντηρητής μπορεί να προτιμήσει να χρησιμοποιήσει την αυστηρή λειτουργία ως στάνταρ.
Τελικά, εξαρτάται από εσάς, αλλά είναι χρήσιμο να γνωρίζετε ότι υπάρχει διαθέσιμο χέρι βοήθειας. Ως προγραμματιστής, θα πρέπει να είστε πάντα σε επιφυλακή για τις βέλτιστες πρακτικές και τι μπορείτε να κάνετε για να τις εφαρμόσετε.
Ο κώδικάς σας πρέπει να είναι σαφής και εύκολος στη συντήρηση. Ακολουθούν πολλές άλλες αρχές προγραμματισμού που θα σας βοηθήσουν να καθαρίσετε την πράξη σας.
Διαβάστε Επόμενο
- Προγραμματισμός
- JavaScript
- Ανάπτυξη διαδικτύου
- Γλώσσες προγραμματισμού

Ο Bobby είναι ένας λάτρης της τεχνολογίας που εργάστηκε ως προγραμματιστής λογισμικού για περισσότερες από δύο δεκαετίες. Είναι παθιασμένος με τα παιχνίδια, εργάζεται ως αρχισυντάκτης στο Switch Player Magazine και ασχολείται με όλες τις πτυχές της διαδικτυακής δημοσίευσης και της ανάπτυξης ιστού.
Εγγραφείτε στο ενημερωτικό μας δελτίο
Εγγραφείτε στο ενημερωτικό μας δελτίο για συμβουλές τεχνολογίας, κριτικές, δωρεάν ebook και αποκλειστικές προσφορές!
Κάντε κλικ εδώ για να εγγραφείτε