JS TutorialLesson #10

JavaScript Const

The const keyword was introduced in [ES6 (2015)](jses6.asp)

The const keyword was introduced in ES6 (2015)

Variables defined with const cannot be Redeclared

Variables defined with const cannot be Reassigned

Variables defined with const have Block Scope

Share

Cannot be Reassigned

A variable defined with the const keyword cannot be reassigned:

Example

Example Code

javascript
Try it Yourself
const PI = 3.141592653589793;

PI = 3.14;      // This will give an error

PI = PI + 10;   // This will also give an error

Must be Assigned

JavaScript const variables must be assigned a value when they are declared:

Correct

Example Code

javascript
Try it Yourself
const PI = 3.14159265359;

Incorrect

Example Code

javascript
Try it Yourself
const PI;

PI = 3.14159265359;
When to use JavaScript const? > Always declare a variable with const when you know that > the value should not be changed. > Use const when you declare: > A new Array > A new Object > A new Function > A new RegExp

Constant Objects and Arrays

The keyword const is a little misleading.

It does not define a constant value. It defines a constant reference to a value.

Because of this you can NOT:

  • Reassign a constant value
  • Reassign a constant array
  • Reassign a constant object
  • Change the elements of constant array
  • Change the properties of constant object

Constant Arrays

You can change the elements of a constant array:

Example

Example Code

javascript
Try it Yourself
// You can create a constant array:

const cars = ["Saab", "Volvo", "BMW"];

// You can change an element:

cars[0] = "Toyota";

// You can add an element:

cars.push("Audi");

But you can NOT reassign the array:

Example

Example Code

javascript
Try it Yourself
const cars = ["Saab", "Volvo", "BMW"];

cars = ["Toyota", "Volvo", "Audi"];    // ERROR

Constant Objects

You can change the properties of a constant object:

Example

Example Code

javascript
Try it Yourself
// You can create a const object:

const car = {type:"Fiat", model:"500", color:"white"};

// You can change a property:

car.color = "red";

// You can add a property:

car.owner = "Johnson";

But you can NOT reassign the object:

Example

Example Code

javascript
Try it Yourself
const car = {type:"Fiat", model:"500", color:"white"};

car = {type:"Volvo", model:"EX60", color:"red"}    //
  ERROR

Difference Between var, let and const

The difference between var, let, and const lies in scoping mechanisms, reassignment rules, and JavaScript hoisting.

Modern JavaScript standards recommend avoiding var to minimize unintentional bugs.
Featurevarletconst
ScopeFunction or global scopeBlock-scope { }Block-scope { }
ReassignmentCan be updatedCan be updatedCannot be updated
RedeclarationCan be redeclaredCannot be redeclaredCannot be redeclared
HoistingInitialized as undefinedHoisted, not initializedHoisted, not initialized
Learn More: > JavaScript Scope > JavaScript Hoisting > JavaScript var/let/const

Block Scope

Declaring a variable with const is similar to let when it comes to Block Scope.

The x declared in the block, in this example, is not the same as the x declared outside the block:

Example

Example Code

javascript
Try it Yourself
const x = 10;

// Here x is 10

{

const x = 2;

// Here x is 2
}

// Here x is 10

You can learn more about block scope in the chapter JavaScript Scope.


Redeclaring

Redeclaring a JavaScript var variable is allowed anywhere in a program:

Example

Example Code

javascript
Try it Yourself
var x = 2;     // Allowed

var x = 3;     // Allowed

  x = 4;         // Allowed

Redeclaring an existing var or let variable to const, in the same scope, is not allowed:

Example

Example Code

javascript
Try it Yourself
var x = 2;     // Allowed

const x = 2;   // Not allowed

{

let x = 2;     // Allowed

const x = 2;   // Not allowed
}

{

const x = 2;   // Allowed

const x = 2;   // Not allowed

}

Reassigning an existing const variable, in the same scope, is not allowed:

Example

Example Code

javascript
Try it Yourself
const x = 2;     // Allowed

  x = 2;           // Not allowed

  var x = 2;       // Not allowed

  let x = 2;       // Not allowed

  const x = 2;     // Not allowed

{

  const x = 2;   // Allowed

  x = 2;
  // Not allowed
  var x = 2;
  // Not allowed
  let x = 2;
  // Not allowed

  const x = 2;   // Not allowed

}

Redeclaring a variable with const, in another scope, or in another block, is allowed:

Example

Example Code

javascript
Try it Yourself
const x = 2;       // Allowed

{

  const x = 3;   // Allowed

  }

  {

  const x = 4;   // Allowed

  }

Hoisting

Variables defined with var are hoisted to the top and can be initialized at any time.

Meaning: You can use the variable before it is declared:

Example

Example Code

javascript
Try it Yourself
carName = "Volvo";

  var carName;

If you want to learn more about hoisting, study the chapter JavaScript Hoisting. Variables defined with const are also hoisted to the top, but not initialized.

Meaning: Using a const variable before it is declared will result in a ReferenceError:

Example

Example Code

javascript
Try it Yourself
alert (carName);

const carName = "Volvo";


Interactive Code Examples

JS Example 1

javascript
Try it Yourself
JavaScript syntax and algorithm demonstration.
const PI = 3.141592653589793;

PI = 3.14;      // This will give an error

PI = PI + 10;   // This will also give an error

Correct

javascript
Try it Yourself
JavaScript syntax and algorithm demonstration.
const PI = 3.14159265359;

Incorrect

javascript
Try it Yourself
JavaScript syntax and algorithm demonstration.
const PI;

PI = 3.14159265359;

JS Example 4

javascript
Try it Yourself
JavaScript syntax and algorithm demonstration.
// You can create a constant array:

const cars = ["Saab", "Volvo", "BMW"];


// You can change an element:

cars[0] = "Toyota";


// You can add an element:

cars.push("Audi");

JS Example 5

javascript
Try it Yourself
JavaScript syntax and algorithm demonstration.
const cars = ["Saab", "Volvo", "BMW"];



cars = ["Toyota", "Volvo", "Audi"];    // ERROR

JS Example 6

javascript
Try it Yourself
JavaScript syntax and algorithm demonstration.
// You can create a const object:

const car = {type:"Fiat", model:"500", color:"white"};


// You can change a property:

car.color = "red";


// You can add a property:

car.owner = "Johnson";