Traditionally, we always declared variables in JavaScript using the var
keyword. As of ES6/ES2015, it's possible to also use the let
and const
keywords. Let's focus on const
for this post.
You can use the const
keyword to make something constant.
This means you cannot reassign the value:
// Declare a constant
const whiskey = "Jack Daniel's";
// TypeError: Assignment to constant variable
whiskey = "Jim Beam";
You cannot redeclare the constant, either:
// Declare a constant
const whiskey = "Jack Daniel's";
// SyntaxError: Identifier 'whiskey' has already been declared
const whiskey = "Jim Beam";
There is a catch, however. The const
keyword creates a read-only value, not an immutable value.
This means you can still manipulate an object's properties:
// Declare a constant
const whiskey = {
name: "Jack Daniel's"
};
// Add a new property
whiskey.region = "Tennessee";
// {name: "Jack Daniel's", region: "Tennessee"}
console.log(whiskey);
You can still manipulate arrays, too:
// Declare a constant
const whiskeys = ["Jack Daniel's", "Jim Beam"];
// Add a new element
whiskeys.push("Maker's Mark");
// ["Jack Daniel's", "Jim Beam", "Maker's Mark"]
console.log(whiskeys);
The MDN Web Docs explain this in a little more detail:
The
const
declaration creates a read-only reference to a value. It does not mean the value it holds is immutable—just that the variable identifier cannot be reassigned. For instance, in the case where the content is an object, this means the object's contents (i.e. its properties) can be altered.
For more information, check out the const
keyword in the MDN Web Docs.