How many Types of DataTypes in JavaScript

Types of Data Types in JavaScript
JavaScript has 8 main data types divided into two categories:
1. PRIMITIVE DATA TYPES (7 types)
Primitive data types are immutable and stored by value.
1. String
Represents text enclosed in quotes.
javascript
let str1 = "Hello";
let str2 = 'World';
let str3 = `Template String: ${str1}`;
console.log(typeof str1); // stringJavaScript2. Number
Represents both integer and floating-point numbers.
javascript
let int = 42;
let float = 3.14;
let negative = -10;
let infinity = Infinity;
let notANum = NaN; // Not a Number
console.log(typeof int); // numberJavaScript3. Boolean
Represents true or false values.
javascript
let isTrue = true;
let isFalse = false;
console.log(typeof isTrue); // booleanJavaScript4. Undefined
A variable declared but not assigned a value.
javascript
let x;
console.log(x); // undefined
console.log(typeof x); // undefinedJavaScript5. Null
Explicitly represents "no value" or "empty value".
javascript
let user = null;
console.log(typeof user); // object (known quirk in JS)JavaScript6. Symbol (ES6)
A unique and immutable identifier.
javascript
let id1 = Symbol("id");
let id2 = Symbol("id");
console.log(id1 === id2); // false (each is unique)
console.log(typeof id1); // symbolJavaScript7. BigInt (ES2020)
For very large integers beyond the safe limit of Number.
javascript
let bigNum = 123456789012345678901234567890n;
let bigNum2 = BigInt("9007199254740992");
console.log(typeof bigNum); // bigintJavaScript2. NON-PRIMITIVE DATA TYPES (Complex/Reference Types)
Non-primitive types are mutable and stored by reference.
1. Object
A collection of key-value pairs.
javascript
let person = {
name: "John",
age: 30,
email: "john@example.com"
};
console.log(typeof person); // objectJavaScript2. Array
An ordered collection of elements.
javascript
let fruits = ["apple", "banana", "orange"];
let mixed = [1, "hello", true, {name: "John"}];
console.log(typeof fruits); // object (arrays are objects)
console.log(Array.isArray(fruits)); // trueJavaScript3. Function
A reusable block of code.
javascript
function greet(name) {
return `Hello ${name}`;
}
let arrow = (x) => x * 2;
console.log(typeof greet); // function
console.log(typeof arrow); // functionJavaScript4. Date
Represents date and time.
javascript
let today = new Date();
let specific = new Date("2025-10-19");
console.log(typeof today); // objectJavaScript5. RegExp (Regular Expression)
Pattern for matching and manipulating strings.
javascript
let pattern = /[a-z]+/g;
let regex = new RegExp("[0-9]+");
console.log(typeof pattern); // objectJavaScript6. Map (ES6)
Collection of key-value pairs with any data type as key.
javascript
let map = new Map();
map.set("name", "John");
map.set(1, "one");
console.log(typeof map); // objectJavaScript7. Set (ES6)
Collection of unique values.
javascript
let set = new Set([1, 2, 2, 3, 3]);
console.log(set); // Set(3) { 1, 2, 3 }
console.log(typeof set); // objectJavaScript8. WeakMap & WeakSet (ES6)
Similar to Map and Set but with weak references.
javascript
let weakMap = new WeakMap();
let obj = {};
weakMap.set(obj, "value");JavaScript9. Error
Represents an error object.
javascript
let error = new Error("Something went wrong");
console.log(typeof error); // objectJavaScriptQuick Reference Table
| Data Type | Category | Example | typeof |
| String | Primitive | "hello" | string |
| Number | Primitive | 42, 3.14 | number |
| Boolean | Primitive | true, false | boolean |
| Undefined | Primitive | undefined | undefined |
| Null | Primitive | null | object* |
| Symbol | Primitive | Symbol("id") | symbol |
| BigInt | Primitive | 123n | bigint |
| Object | Non-Primitive | {name: "John"} | object |
| Array | Non-Primitive | [1, 2, 3] | object |
| Function | Non-Primitive | function(){} | function |
| Date | Non-Primitive | new Date() | object |
| RegExp | Non-Primitive | /pattern/ | object |
| Map | Non-Primitive | new Map() | object |
| Set | Non-Primitive | new Set() | object |
*Note: typeof null returns "object" due to a JavaScript quirk.
Key Differences
Primitive Types:
- Immutable (cannot be changed)
- Compared by value
- Stored directly in memory
Non-Primitive Types:
- Mutable (can be changed)
- Compared by reference
- Stored as references in memory
javascript
// Primitive comparison (by value)
let a = 5;
let b = 5;
console.log(a === b); // true
// Object comparison (by reference)
let obj1 = {x: 5};
let obj2 = {x: 5};
console.log(obj1 === obj2); // false
console.log(obj1 === obj1); // trueJavaScript

