Sparky saysJS has primitives (string, number, boolean, null, undefined, bigint, symbol) and objects (everything else).
Seven primitive types hold single values and are copied by value. Everything else — arrays, functions, dates, plain objects — is an object, copied and compared by reference. typeof reveals a value's type (with the famous quirk that typeof null is "object").
Power-ups you unlock
Primitives: string, number, boolean, null, undefined, bigint, symbol
Objects (arrays, functions, …) are reference types
Primitives copy by value; objects by reference
typeof null === "object" (a historic bug)
NaN the Trickster attacks — common mistakes
Expecting object equality by value (it’s by reference)
Confusing null and undefined
Forgetting typeof null quirk
Boss battleLog typeof for a string, number, array, function, and null — note the surprises.