A variable in JavaScript can be defined using three different keywords, let, var and const, or automatically, which is a bad practice.

To declare a variable automatically, one could just assign a value to it. Because JavaScript is loosely typed, it will automatically assign a data type to it.

x = "Hello world!";
 
console.log(x);

Using var

The var keyword was the original way of declaring variables until 2015, where the other keywords were introduced. Itā€™s not a good practice to use it nowadays, and should be only used when developing for older browsers and applications.

var x = "This is a var variable. Bad practice!!";
 
console.log(x);

Using let and const

For most use cases, const should be always preferred. It creates an immutable variable, meaning itā€™s value cannot be changed after the definition.

const x = "Constant";
 
x = 1; // Returns an TypeError.

For cases where the variable will be reassigned, we use the let keyword. A variable declared with the let keyword can be reassigned normally, to any other type.

let x = "Mutable variable";
 
x = 1;
 
console.log(x);

Declaring undefined variables

If declaring a variable using the let keyword without assigning a value to it, it creates an undefined variable, which is a variable that donā€™t have any value.

Undefined vs null

An undefined variable is not the same as a variable assigned to null. Each one returns different values.

For example:

let x;
 
console.log(x); // Returns undefined.
 
x = null;
 
console.log(x); // Returns null.