Difference Between Primitives and Non-Primitives in JavaScript
What are Primitives and Non-Primitives?
In JavaScript all data is divided into two types:
- Primitive Types — values that are not objects and have immutable value.
- Non-Primitive Types (Reference Types) — objects that are stored and passed by reference, can be mutable.
Primitive Types
Primitives are basic types built into the language.
| Type | Example | Features |
|---|---|---|
string | "Hello" | Text string |
number | 42, 3.14 | Any number (integer and floating point) |
boolean | true, false | True or false |
null | null | Intentional absence of value |
undefined | undefined | Value wasn't assigned |
bigint | 900719925...n | Large numbers |
symbol | Symbol('id') | Unique identifiers |
Primitive Features
- Immutable — cannot be changed
- Passed by value — copied when assigned
- Compared by value
Non-Primitive Types
ObjectArrayFunctionDate,RegExp, etc.
Non-Primitive Features
- Mutable — can be modified
- Passed by reference — not copied, reference is passed
- Compared by reference
Summary:
Primitives are simple, immutable values passed by value. Non-primitives are objects passed by reference.