Skip to main content

Εισαγωγή

Ο κόσμος της JavaScript

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

Αναπτύχθηκε αρχικά από τον Brendan Eich της Netscape το 1995 και από τότε έχει εξελιχθεί σε μία από τις πιο δημοφιλείς γλώσσες προγραμματισμού στον κόσμο. Η JavaScript επιτρέπει στους προγραμματιστές να ενσωματώνουν σύνθετη λογική και λειτουργικότητα στις ιστοσελίδες, όπως διαδραστικά μενού, κινούμενα γραφικά και αυτόματες ενημερώσεις περιεχομένου χωρίς την ανάγκη ανανέωσης της σελίδας.

Εκτός από την κλασική χρήση της στο frontend (client side), η JavaScript χρησιμοποιείται επίσης και στο backend (server side) μέσω τεχνολογιών όπως το Node.js, καθιστώντας την μια ευέλικτη και πανίσχυρη γλώσσα για τη δημιουργία σύγχρονων web εφαρμογών.

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

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

Φταίει η JavaScript;

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

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

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

Σαν προγραμματιστές έχουμε την ευθύνη να γνωρίζουμε τα εργαλεία που επιλέγουμε και να τα χρησιμοποιούμε σωστά.

Spec & Manuals

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

Specification

Το πρότυπο της JavaScript είναι καθορισμένο από τον οργανισμό ECMA International. Άλλα παραδείγματα προτύπων που ίσως έχεις ακούσει είναι τα ISO, IETF, W3C κλπ.

Όταν αναφερόμαστε στο πρότυπο της JavaScript, αναφερόμαστε στο ECMA-262 ή αλλιώς ECMAScript / ES. Με όποιον συμβολισμό και αν το αναφέρουμε, εννοούμε το ίδιο πράγμα.

Χρησιμοποιώντας έναν αριθμό στο τέλος του προτύπου, μπορούμε να δούμε την έκδοση της JavaScript που χρησιμοποιούμε. Για παράδειγμα, η έκδοση του 2015 είναι γνωστή ως ECMAScript 6 ή ES6. Η έκδοση του 2016 είναι γνωστή ως ECMAScript 7 ή ES7 και ούτω καθεξής. Μπορείς να βρεις την τελευταία Stable έκδοση του προτύπου εδώ https://tc39.es/ecma262/.

Καταλαβαίνεις λοιπόν ότι αυτό το πρότυπο καθορίζει τη συμπεριφορά της γλώσσας και τις νέες λειτουργίες που προστίθενται σε κάθε νέα έκδοση. Είναι λοιπόν η καλύτερη πηγή για να μάθεις τον τρόπο με τον οποίο λειτουργεί η JavaScript, ακόμα και σε αλγοριθμικό επίπεδο behind the scenes.

MDN Web Docs

Πέρα απο το specification, ένα πολύ καλό manual για την JavaScript είναι το MDN Web Docs. Εκεί θα βρεις πληροφορίες και παραδείγματα που χρειάζεσαι για να μάθεις καλύτερα τη γλώσσα.

Compiled ή Interpreted;

Η JavaScript θεωρείται συνήθως interpreted, ενώ είναι στην πραγματικότητα μια Just-In-Time compiled γλώσσα. Οι σύγχρονες JavaScript engines (π.χ. V8 engine) χρησιμοποιούν έναν JIT μεταγλωττιστή (compiler) για τη βελτιστοποίηση του κώδικα πριν την εκτέλεση. Αυτός ο μεταγλωττιστής επιτρέπει στην JavaScript να εκτελείται πολύ πιο γρήγορα και με αποτελεσματικό τρόπο σε σχέση με τις παραδοσιακές interpreted γλώσσες.

Ο κώδικας JavaScript αναλύεται πριν από την εκτέλεση και μετατρέπεται στην πραγματικότητα σε δυαδική μορφή (κώδικας μηχανής που εκτελείται απευθείας από το hardware του υπολογιστή).

Έτσι, η απάντηση στην ερώτηση "Η JavaScript είναι compiled ή interpreted γλώσσα;" είναι λίγο και από τα δύο. Είναι interpreted σε παλαιότερα προγράμματα περιήγησης, αλλά στα σύγχρονα προγράμματα περιήγησης, γίνεται compile με τη βοήθεια ενός JIT compiler.