The current edition of the ECMAScript spec defines 8 value types:

  1. Undefined
  2. Null
  3. Boolean
  4. String
  5. Symbol
  6. Number
  7. BigInt
  8. Object

https://262.ecma-international.org/11.0/#sec-ecmascript-language-types

The typeof operator is a big source of confusion in JavaScript, because what it returns is not always the actual type of the value. The conversion table for typeof (https://262.ecma-international.org/11.0/#sec-typeof-operator) is like this

Type of val Result
Undefined undefined
Null object !!!
Boolean boolean
Number number
String string
Symbol symbol
BigInt bigint
Object (does not implement [[Call]]) object
Object (implements [[Call]]) function !!!

Note the two exceptions marked with !!!

To confuse us further, the language also provides wrapper functions for these 4 primitive types

  1. Boolean
  2. Number
  3. String
  4. BigInt

These functions

  • when called with new, return their argument converted to a corresponding wrapper object (Boolean, Number etc)

  • when called without new, return their argument converted to a corresponding primitive value (Boolean, Number etc)

These functions are also called implicitly (in the new or "constructor" mode) when a primitive is used in the "object" context (e.g. "foo".length)

🌐
Mozilla
developer.mozilla.org › en-US › docs › Web › JavaScript › Guide › Data_structures
JavaScript data types and data structures - JavaScript | MDN
This article attempts to list the built-in data structures available in JavaScript and what properties they have. These can be used to build other data structures. The language overview offers a similar summary of the common data types, but with more comparisons to other languages.
🌐
W3Schools
w3schools.com › js › js_datatypes.asp
JavaScript Data Types
JavaScript has dynamic types. This means that the same variable can be used to hold different data types:
🌐
CodeSweetly
codesweetly.com › javascript-data-types
Data Types in JavaScript – What Values Can Variables Hold? | CodeSweetly
JavaScript data types refer to the kind of values you can assign to JavaScript variables. The two main ones are primitives and non-primitive.
🌐
Techaltum
tutorial.techaltum.com › datatype-javascript.html
JavaScript Data Types: Complete Guide to Primitive and Reference Types (2025)
November 2, 2025 - JavaScript provides two main categories of data types: primitive types that store simple values (String, Number, Boolean, undefined, null, BigInt, Symbol) and reference types that store complex data (Object, Array, Function).
🌐
Mimo
mimo.org › glossary › javascript › data-types
JavaScript Data Types: Syntax, Usage, and Examples
JavaScript data types include primitives (string, number, boolean, null, undefined, symbol) and objects (arrays, functions). Use typeof to check types dynamically.
🌐
MilesWeb
milesweb.com › blog › web-development › javascript-data-types
JavaScript Data Types Explained for Web Developers
June 13, 2025 - Explore MilesWeb's diverse blogs on SEO, affiliate marketing, web hosting, small business tips, and more. Read insightful articles, engage with our community, and contribute your expertise to enhance your online presence.
Find elsewhere
🌐
Mozilla
developer.mozilla.org › en-US › docs › Web › JavaScript › Guide › Grammar_and_types
Grammar and types - JavaScript | MDN
(Because JavaScript is case-sensitive, null is not the same as Null, NULL, or any other variant.) undefined. A top-level property whose value is not defined. Number. An integer or floating point number. For example: 42 or 3.14159. BigInt. An integer with arbitrary precision. For example: 9007199254740992n. String. A sequence of characters that represent a text value. For example: "Howdy". Symbol. A data type whose instances are unique and immutable.
🌐
GeeksforGeeks
geeksforgeeks.org › javascript › variables-datatypes-javascript
Variables and Datatypes in JavaScript - GeeksforGeeks
Non-primitive types are objects and can store collections of data or more complex entities. ... In JavaScript, both null and undefined represent "empty" values but are distinct types. null is a special object representing the intentional absence of a value, while undefined signifies that a variable has been declared but not assigned a value.
Published   November 19, 2025
🌐
Playcode
playcode.io › javascript › data-types
JavaScript Data Types: Complete Guide with Examples | PlayCode
Learn all JavaScript data types: strings, numbers, booleans, null, undefined, objects, arrays, and symbols. Interactive examples and type checking included.
🌐
GeeksforGeeks
geeksforgeeks.org › javascript › javascript-data-types
JavaScript Data Types - GeeksforGeeks
It is also known as derived data types or reference data types. JavaScript objects are key-value pairs used to store data, created with {} or the new keyword.
Published   January 19, 2026
🌐
BrainStation®
brainstation.io › learn › javascript › data-types
JavaScript Data Types (2026 Tutorial & Examples) | BrainStation®
February 4, 2025 - Arrays are a type of object whose keys are integers. Arrays are a key building block for complex data structures. It is important to note that JavaScript is a dynamic and weakly typed language, so the same variable can be used to hold a variety of different data types.
🌐
DEV Community
dev.to › catherineisonline › javascript-data-types-5ec5
JavaScript Data Types - DEV Community
August 13, 2024 - A number is a number data type, simple as that. It can be any number as long as it’s not inside the quotes. If the number is in quotes it becomes a string. Compared to other languages, JavaScript doesn’t define what type of number it is, e.g. integer. Finally, numbers are stored in 64 bits and have some limits with large numbers.
🌐
WsCube Tech
wscubetech.com › resources › javascript › data-types
JavaScript Data Types: Primitive & Non-Primitive With Examples
November 5, 2025 - Learn about JavaScript data types: Primitive & Non-Primitive with examples. Explore strings, numbers, objects, arrays, and more in this comprehensive guide.
🌐
TutorialsPoint
tutorialspoint.com › javascript › javascript_data_types.htm
JavaScript - Data Types
These are the type of values that can be represented and manipulated in a programming language. JavaScript data types can be categorized as primitive and non-primitive (object).
🌐
Containerize
blog.containerize.com › containerize.blogs › what are javascript data types? | a beginner’s guide
What are JavaScript Data Types? | A Beginner’s Guide
February 17, 2023 - What are JavaScript Data Types? Follow this beginner's guide to learn 7 data types used in JavaScript Number, String, Boolean, Null, undefined, and more.
🌐
Programiz
programiz.com › javascript › data-types
JavaScript Data Types (with Examples)
Non-Primitive Data Types: They can hold multiple values. Objects are non-primitive data types. A string represents textual data. It contains a sequence of characters. For example, "hello", "JavaScript", etc.
🌐
Coders Campus
coderscampus.com › home › ep25 – javascript data types
EP25 - JavaScript Data Types - Coders Campus
April 9, 2021 - Although the JavaScript language doesn't allow you to explicitly define a type when you declare a variable, this shouldn't lead you to believe that JavaScript doesn't have types (because it does). JavaScript uses dynamic typing, and therefore this means that the JavaScript engine will choose the best data type for your variable based on its value.