Η JavaScript έχει 7 primitive τύπους, και όλα τα υπόλοιπα (arrays, functions, objects) είναι ένα object.
Οι primitive τύποι: string, number, boolean, , , , .
Η JavaScript έχει 7 primitive τύπους, και όλα τα υπόλοιπα (arrays, functions, objects) είναι ένα object.
Οι primitive τύποι: string, number, boolean, , , , .
nullundefinedbigintsymboltypeof "hi"; // "string"
typeof 42; // "number" (both ints and floats)
typeof true; // "boolean"
typeof undefined; // "undefined"
typeof 10n; // "bigint"
typeof Symbol(); // "symbol"
typeof null; // "object" ← famous historical bug!
typeof {}; // "object"
typeof []; // "object" (arrays are objects)
typeof function(){};// "function"
1. Οι primitive τύποι είναι αμετάβλητοι και αντιγράφονται κατά τιμή· τα objects αντιγράφονται κατά αναφορά.
let a = 5; let b = a; b++; // a is still 5 (independent copies)
let x = {n:1}; let y = x; y.n = 2; // x.n is now 2 (same object!)
2. typeof null === "object" είναι ένα διαχρονικό σφάλμα γλώσσας που πρέπει να θυμάστε — για να ελέγξετε για null, συγκρίνετε απευθείας (x === null).
Η κατανόηση του value-vs-reference εξηγεί γιατί η μετάλλαξη ενός κοινόχρηστου object επηρεάζει "και τις δύο" μεταβλητές, γιατί {} === {} είναι false, και γιατί αντιγράφετε objects (spread) πριν τα τροποποιήσετε σε state-driven UI όπως το React.