DEV Community


Posted on


JavaScript primitive data types

Every programming language has data types. In JavaScript, there are 8 data types that can be grouped into two categories: primitive values and objects.

Primitive values are data types that are immutable (can't be changed). If you come from another programming language like C, this might be something new to you.

For example, in C you learned that string is an array of chars, and you could change each char. Code below in C would change string to "boop", but in JavaScript stays "loop" because the string is a primitive value that can not be changed.

comparison with c

Here is the list of all primitive values:

  • Boolean
  • Null
  • Undefined
  • Number
  • BigInt
  • String
  • Symbol

Everything that doesn't have type one of the primitive values is type of object. For example, common mistake is checking type of date, which doesn't exist and is always false.

type of date

As you can see, date is actually type of object.


Boolean is a logical data type that can have two values: true or false. Its mostly used in if statements and loops to conditionally execute code based on truthness of an expression.

boolean types

Note that expressions are also type of boolean (2>3) and can be true or false.

Also true and false aren't same as "true" and "false", later ones are type of string.

Null and undefined

Null represents the intentional absence of object value. If you check it's type you will notice it actually isn't type of null, but actually type of object. Its used when you expect an object returned, but instead you get returned nothing.

typeof null

On the other hand, undefined is assigned to variables that have just been declared. It represent lack of value. Unlike null, its type if actually same as its name - undefined.

typeof undefined

Number and BigInt

There are two numeric types in JavaScript: number and BigInt.

There aren't other types of numbers in JavaScript. If you come from other programming languages, you probably used float, decimal, double...

In JavaScript, all of those mentioned above are type of number:

type of number

The maximum number of decimals is 17 and integers are accurate up to 15 digits.

BigInt represents integers with arbitrary precision, it is used to store and do operations on large integers (larger than type number supports).

It is created by adding "n" at the end of an integer.

big int


A String is used for textual data, it is a set of values, just like in other programming languages. The difference being they are immutable. Despite that, you can still access each element of the string. Each element has an index, starting from 0 to n-1, n being the length of a string.

string example


A Symbol is a unique and immutable primitive value and may be used as the key of an Object property.

const person = {name: "Jon"};

In the example above, "name" is the key of the "person" object and it has a value pair of "Jon".

Thank you for reading this article!

Top comments (0)