DEV Community

Cover image for JavaScript variables and data types.
Agbo, Daniel Onuoha
Agbo, Daniel Onuoha

Posted on • Edited on

JavaScript variables and data types.

JavaScript is a versatile programming language that powers the web, enabling developers to create interactive and dynamic websites. One of the core concepts in JavaScript, and in any programming language, is how data is stored and manipulated. To effectively build web applications, it's essential to understand variables and data types in JavaScript.

In this article, we'll cover what variables are, how to declare them, and the various data types that JavaScript supports for storing and manipulating data.


Variables in JavaScript

What is a Variable?

A variable in JavaScript is like a container that holds data. It allows you to store and retrieve values that you can use throughout your program. Think of variables as labels attached to values. Once you assign a value to a variable, you can refer to it by its name, rather than using the value directly every time.

For example, instead of writing "John" multiple times, you can assign it to a variable like this:

let name = "John";
console.log(name);  // Outputs: John
Enter fullscreen mode Exit fullscreen mode

Declaring Variables

In JavaScript, variables can be declared using the var, let, or const keywords.

1. var

var is the oldest way of declaring variables in JavaScript. However, it has some issues with scope, which is why modern JavaScript developers prefer using let and const.

var age = 30;
console.log(age);  // Outputs: 30
Enter fullscreen mode Exit fullscreen mode

2. let

let is block-scoped, meaning the variable exists only within the block it is defined in (e.g., inside a function or a loop). It is the most commonly used way to declare variables in modern JavaScript.

let city = "New York";
console.log(city);  // Outputs: New York
Enter fullscreen mode Exit fullscreen mode

3. const

const is similar to let, but it is used to declare variables whose values will not change. Once a value is assigned to a variable declared with const, it cannot be re-assigned.

const country = "USA";
console.log(country);  // Outputs: USA

// This will throw an error
// country = "Canada";  
Enter fullscreen mode Exit fullscreen mode

Naming Variables

When naming variables, keep the following rules in mind:

  • Variable names can contain letters, numbers, underscores (_), and dollar signs ($).
  • They must begin with a letter, underscore, or dollar sign.
  • Variable names are case-sensitive (e.g., myVar and myvar are different variables).
  • JavaScript keywords (e.g., var, let, if, function) cannot be used as variable names.

A common convention is to use camelCase for variable names, like myVariableName.


Data Types in JavaScript

JavaScript supports various data types that specify the kind of value a variable can hold. Data types are divided into two categories:

  • Primitive Data Types
  • Non-Primitive (Reference) Data Types

Primitive Data Types

Primitive data types are the most basic types of data in JavaScript. They include:

1. String

Strings are used to represent textual data. They are enclosed in quotes—either single ('), double (") or backticks (`).

let greeting = "Hello, World!";
let anotherGreeting = 'Hi there!';
console.log(greeting);  // Outputs: Hello, World!
Enter fullscreen mode Exit fullscreen mode

2. Number

The number data type represents both integers and floating-point numbers (i.e., decimals).

let age = 25;       // Integer
let price = 99.99;  // Floating-point number
Enter fullscreen mode Exit fullscreen mode

3. Boolean

Booleans represent logical values—true or false. They are often used in conditional statements and comparisons.

let isLoggedIn = true;
let hasAccess = false;
Enter fullscreen mode Exit fullscreen mode

4. Undefined

When a variable is declared but not assigned a value, it is automatically initialized with the value undefined.

let myVar;
console.log(myVar);  // Outputs: undefined
Enter fullscreen mode Exit fullscreen mode

5. Null

null represents an explicitly empty or non-existent value. It is used when you want to indicate that a variable should have no value.

let emptyValue = null;
Enter fullscreen mode Exit fullscreen mode

6. Symbol

Symbols are unique and immutable values, typically used to create unique property keys for objects. While not commonly used by beginners, they are useful in advanced applications.

let symbol1 = Symbol("description");
Enter fullscreen mode Exit fullscreen mode

7. BigInt

The BigInt type allows for the representation of whole numbers larger than the range of the Number type. It’s especially useful when working with very large integers.

let bigNumber = BigInt(123456789012345678901234567890);
Enter fullscreen mode Exit fullscreen mode

Non-Primitive (Reference) Data Types

Non-primitive data types store more complex data structures and objects. They are known as reference types because variables store references to the actual data.

1. Object

Objects are collections of key-value pairs. They allow you to store multiple related values as properties.

let person = {
  name: "John",
  age: 30,
  isStudent: false
};
console.log(person.name);  // Outputs: John
Enter fullscreen mode Exit fullscreen mode

2. Array

Arrays are ordered collections of values (elements). Arrays can store multiple values in a single variable, and the values can be of any data type.

let fruits = ["Apple", "Banana", "Cherry"];
console.log(fruits[1]);  // Outputs: Banana
Enter fullscreen mode Exit fullscreen mode

3. Function

Functions are blocks of code designed to perform a particular task. In JavaScript, functions themselves are treated as objects, allowing them to be passed as arguments or stored in variables.

function greet() {
  console.log("Hello!");
}
greet();  // Outputs: Hello!
Enter fullscreen mode Exit fullscreen mode

Type Coercion and Dynamic Typing

JavaScript is dynamically typed, which means you don’t need to explicitly declare the type of a variable. JavaScript will automatically infer the type based on the value assigned. For example:

let variable = "Hello";  // variable is of type string
variable = 42;           // variable is now of type number
Enter fullscreen mode Exit fullscreen mode

In addition, JavaScript performs type coercion, which means it will automatically convert values from one type to another when necessary.

console.log("5" + 10);  // Outputs: "510" (String concatenation)
console.log("5" - 1);   // Outputs: 4 (Number subtraction)
Enter fullscreen mode Exit fullscreen mode

In the first example, JavaScript coerces 10 to a string and concatenates it with "5". In the second example, "5" is coerced into a number for subtraction.


Conclusion

Understanding variables and data types is a fundamental step in learning JavaScript. Variables allow you to store and manage data in your programs, while data types define the kind of data you’re working with, from strings to numbers, booleans, and beyond.

As you continue learning JavaScript, you'll frequently use variables and work with various data types to build interactive and dynamic web applications. By mastering how to manipulate these data types, you’ll be able to write more efficient and effective code.

Top comments (0)