ECMAScript πρωτότυπα τιμή και αναφορά τιμή
- Προηγούμενη σελίδα Δημιουργικές λέξεις ECMAScript
- Επόμενη σελίδα Βασικοί τύποι ECMAScript
Στο ECMAScript, οι μεταβλητές μπορούν να έχουν δύο τύπους τιμών, δηλαδή αρχικές τιμές και αναφορές.
Αρχικές και αναφορές
Στο ECMAScript, οι μεταβλητές μπορούν να έχουν δύο τύπους τιμών, δηλαδή αρχικές τιμές και αναφορές.
- Αρχικό
- Απλά δεδομένα αποθηκευμένα στο stack, δηλαδή οι τιμές τους αποθηκεύονται άμεσα στη θέση πρόσβασης της μεταβλητής.
- Αναφορά
- Αντικείμενα αποθηκευμένα στο heap, δηλαδή η τιμή που αποθηκεύεται στη μεταβλητή είναι ένας δείκτης (pointer), που δείχνει στη μνήμη του αντικειμένου.
Στο σημείο ανάθεσης μεταβλητών, ο εξελεγκτής του ECMAScript πρέπει να κρίνει αν η τιμή είναι αρχικός τύπος ή τύπος αναφοράς. Για να επιτύχει αυτό, ο εξελεγκτής πρέπει να προσπαθήσει να κρίνειΑν η τιμή είναι ένας αρχικός τύπος του ECMAScriptδηλαδή Undefined, Null, Boolean, Number και String. Επειδή το μέγεθος αυτών των αρχικών τύπων είναι σταθερό, μπορούν να αποθηκευτούν σε μικρότερη περιοχή μνήμης - στο stack. Αυτό το αποθηκευτικό μέθοδο διευκολύνει την ταχεία αναζήτηση των τιμών των μεταβλητών.
Σε πολλές γλώσσες, οι αλφαριθμητικές ακολουθίες θεωρούνται τύποι αναφοράς, όχι αρχικοί τύποι, επειδή η μήκος τους είναι μεταβλητό. Το ECMAScript έχει打破 αυτήν τη παραδοσιακή πρακτική.
Αν μια τιμή είναι τύπου αναφοράς, τότε ο χώρος αποθήκευσης της θα κατανεμηθεί από το heap. Επειδή το μέγεθος της αναφοράς μπορεί να αλλάξει, δεν μπορεί να τοποθετηθεί στο stack, αλλιώς θα μειώσει την ταχύτητα αναζήτησης της μεταβλητής. Αντίθετα, η τιμή που αποθηκεύεται στο χώρο αποθήκευσης της μεταβλητής είναι η διεύθυνση του αντικειμένου που αποθηκεύεται στο heap. Το μέγεθος της διεύθυνσης είναι σταθερό, οπότε η αποθήκευση της στην περιοχή αποθήκευσης του stack δεν έχει καμία αρνητική επίδραση στην απόδοση της μεταβλητής. Ωστόσο, όπως εμφανίζεται στο εικονικό πλαίσιο:

Αρχικοί τύποι
Ως αναφέρεται προηγουμένως, το ECMAScript έχει 5 αρχικούς τύπους (primitive type), δηλαδή Undefined, Null, Boolean, Number και String. Το ECMA-262 καθορίζει τον όροΤύπος (type)Δημιουργημένος ως σύνολο τιμών, κάθε αρχικός τύπος καθορίζει το εύρος των τιμών που περιέχει και τη λεκτική του εκφώνηση.
Το ECMAScript παρέχει τον τελεστή typeof για να κρίνει αν μια τιμή βρίσκεται στο εύρος ενός τύπου. Μπορείτε να χρησιμοποιήσετε αυτόν τον τελεστή για να κρίνετε αν μια τιμή εκφράζει έναν αρχικό τύπο: αν είναι αρχικός τύπος, μπορείτε επίσης να κρίνετε ποιον αρχικό τύπο εκφράζει.
Στα επόμενα κεφάλαια, θα σας εξηγήσουμε αναλυτικά τα αρχικά τύπου και τους τύπους αναφοράς του ECMAScript.
- Προηγούμενη σελίδα Δημιουργικές λέξεις ECMAScript
- Επόμενη σελίδα Βασικοί τύποι ECMAScript