Junior
Ποιες δομές δεδομένων υπάρχουν στη JavaScript;
sobes.tech AI
Απάντηση από AI
Οι πιο απλοί τύποι δεδομένων: String (αλυσίδες), Number (αριθμοί), BigInt (μεγάλοι ακέραιοι αριθμοί), Boolean (λογικός τύπος), Undefined (μη ορισμένη τιμή), Symbol (σύμβολα), Null (κενή τιμή).
Σύνθεμες δομές δεδομένων:
- Object (αντικείμενο): Συλλογή ζευγών κλειδιού-τιμής.
// Απλό αντικείμενο const user = { name: 'Ivan', age: 30 }; - Array (πίνακας): Ταξινομημένη συλλογή στοιχείων.
// Πίνακας αριθμών const numbers = [1, 2, 3, 4, 5]; - Map (χάρτης): Συλλογή ζευγών κλειδιού-τιμής, όπου τα κλειδιά μπορούν να είναι οποιουδήποτε τύπου δεδομένων και διατηρούν τη σειρά εισαγωγής.
// Χάρτης με διαφορετικούς τύπους κλειδιών const map = new Map(); map.set('name', 'Peter'); map.set(1, 'αριθμός'); - Set (σύνολο): Συλλογή μοναδικών τιμών οποιουδήποτε τύπου δεδομένων.
// Σύνολο μοναδικών αριθμών const set = new Set([1, 2, 2, 3, 4, 4]); // Θα περιέχει [1, 2, 3, 4] - Typed Arrays (τύπου πίνακες): Πίνακες σταθερού μήκους, των οποίων τα στοιχεία έχουν ορισμένο αριθμητικό τύπο (π.χ.,
Int8Array,Uint8Array,Float32Array).// Τυποποιημένος πίνακας byte const byteArray = new Uint8Array([10, 20, 30]); - WeakMap (αδύναμος χάρτης): Παρόμοιος με το
Map, αλλά τα κλειδιά πρέπει να είναι αντικείμενα, και δεν εμποδίζουν τον garbage collector να διαγράψει τα συσχετισμένα αντικείμενα.// Αδύναμος χάρτης const weakMap = new WeakMap(); const obj1 = {}; weakMap.set(obj1, 'δεδομένα 1'); - WeakSet (αδύναμο σύνολο): Παρόμοιο με το
Set, αλλά τα στοιχεία πρέπει να είναι αντικείμενα, και δεν εμποδίζουν τον garbage collector να διαγράψει αυτά.// Αδύναμο σύνολο const weakSet = new WeakSet(); const obj2 = {}; weakSet.add(obj2);
Επίσης, υπάρχουν δομές που χρησιμοποιούνται σε API χαμηλού επιπέδου ή που αντιπροσωπεύουν ειδικά αντικείμενα:
ArrayBuffer: Αντιπροσωπεύει ένα γενικό, σταθερού μήκους δυαδικό buffer.DataView: Παρέχει μια χαμηλού επιπέδου διεπαφή για την ανάγνωση και εγγραφή αριθμητικών δεδομένων σε έναArrayBuffer, επιτρέποντας τον έλεγχο των μετατοπίσεων και της σειράς των bytes.