A Comprehensive Guide to JavaScript Types and the typeof Operator

JavaScript is a very versatile language, and with it come several different JavaScript types of data that can be used in programming. There are a few different types of data in JavaScript, including strings, numbers, booleans, undefined, null, and objects.

Each type has its own characteristics and is used for different purposes. To determine the type of a value, the typeof operator is used. This operator returns a string indicating the type of the given value. It is important to be aware of the different types of data in JavaScript, as using the wrong type can lead to unexpected results.

All values in JavaScript are classified under one of the following types:

JavaScript number type

The JavaScript number type is a primitive data type used to store numerical values. It is the most common data type used in JavaScript and is capable of representing both integers and floating-point numbers.

Numbers can be stored as a literal value or as a variable. They are typically used to carry out mathematical operations such as addition, subtraction, multiplication, and division.

JavaScript also provides built-in functions for working with numbers, such as the Math.abs(), Math.round(), and Math.min() functions. Additionally, JavaScript numbers have certain limits in terms of precision and range.

For example, JavaScript numbers can only represent up to 16 decimal digits, and the range of a JavaScript number is -(253 – 1) to 253 – 1

The Boolean values false and true

JavaScript Boolean values false and true are used to represent a logical value within the language. It is a primitive data type that can only take two possible values: true or false. Boolean values are used to evaluate expressions and conditions, often as part of an if-statement.

When an expression is evaluated, the result is either true or false. Boolean values are often used in control structures to dictate the flow of a program and are responsible for deciding when certain code should be executed. Boolean values are also commonly used in the comparison of two values, such as when the equality of two things is evaluated.

For example, if two numbers are compared, it will return a Boolean value of true if the numbers are equal and false if the numbers are not equal

let number = 10;
(number === 10) // true
(number === 8) // false

The special values null and undefined

This null and undefined are often misunderstood or overlooked by many developers, leading to confusion and bugs in their code. Null and undefined are two distinct values in JavaScript and understanding the difference between them is critical for writing bug-free code.

JavaScript String

A JavaScript String is a data type used to represent text and is the foundation of all text-based programming. A string can store any sequence of characters, including numbers, symbols, and letters of the alphabet. JavaScript strings are immutable, meaning they cannot be changed once they are created.

This immutability makes them ideal for storing data that will not be changed often, such as URLs and passwords. Strings can also be manipulated using methods such as .replace(), .indexOf(), and .substr(), which allow developers to easily alter, search, and update strings.

Additionally, JavaScript strings are often used in conjunction with regular expressions for pattern matching and text processing. Strings are written with quotes. You can use single or double quotes:


// Using double quotes:
let string1 = "Using double quotes";

// Using single quotes:
let string2 = 'Using double quotes';

It is possible to include quotations within a string, as long as the quotation marks used do not match the quotation marks used to denote the start and end of the string:


// Single quote inside double quotes:
let answer1 = "It's alright";

// Single quotes inside double quotes:
let answer2 = "He is called 'Johnny'";

// Double quotes inside single quotes:
let answer3 = 'He is called "Johnny"';

A symbol

JavaScript Symbols are a new primitive data type introduced in the ECMAScript 6 version of the JavaScript programming language. They are used to create unique identifiers for objects, making it easier to differentiate between objects within a program.

Symbols can be used to store properties and can be anonymous or have a name. Symbols can be used in the same way as strings and numbers, and are used in the same way as other primitive data types when creating and manipulating objects.

As a result, they are especially useful in creating and maintaining unique identities for objects in an application. Furthermore, Symbols can be used to make the properties of an object private, allowing developers to create secure and independent objects.

An object

A JavaScript object is an unordered collection of key-value pairs that are used to store data. It is a fundamental data type in JavaScript and is used to represent complex data structures. JavaScript objects are stored in memory and can be manipulated and accessed in a variety of ways.

They are commonly used to store information related to user preferences, application settings, and user-defined data. JavaScript objects are dynamic, meaning they can be modified at any time. They are also powerful and versatile, allowing developers to store data in a variety of formats and configurations.

Furthermore, they can be used to create complex and dynamic web applications, as well as to interact with other web technologies such as APIs. In short, JavaScript objects are an indispensable tool for developers

Non-object types in JavaScript are referred to collectively as primitive types.

The typeof operator can be used to determine the type of a given value; this operator returns a string, such as 'number', 'boolean', 'undefined', 'object', 'string', or 'symbol'. As an example, the typeof operator applied value “46” will return the string 'number'.

Although the null type is distinct from the object type, the string ‘object’ is returned by typeof null due to a historical anomaly.


It is possible to create objects in a manner similar to Java which wrap numerical values, booleans, and strings. To illustrate, the output of ‘typeof new Number(42)’ and ‘typeof new String(‘Hello’)’ would both be ‘object’. However, in JavaScript, there is no good reason to construct such wrapper instances. Since they can be a cause of confusion, coding standards often forbid their use.



Leave a Reply

Your email address will not be published. Required fields are marked *