Flash cards
Review the key moves
What is the main idea behind JavaScript Array Const?
Lesson checks
Practice each idea before moving on
Short Mimo-style checks built from this lesson's code, terms, and sequence.
Which statement best captures the main point of this lesson?
Complete the missing token from the example code.
___ cars = ["Saab", "Volvo", "BMW"];Put the learning moves in the order that makes the concept easiest to apply.
ECMAScript 2015 (ES6)
In 2015, JavaScript introduced an important new keyword: const .
It has become a common practice to declare arrays using const :
Example
const cars = ["Saab", "Volvo", "BMW"];Cannot be Reassigned
An array declared with const cannot be reassigned:
Example
const cars = ["Saab", "Volvo", "BMW"];
cars = ["Toyota", "Volvo", "Audi"]; // ERRORArrays are Not Constants
The keyword const is a little misleading.
It does NOT define a constant array. It defines a constant reference to an array.
Because of this, we can still change the elements of a constant array.
Elements Can be Reassigned
You can change the elements of a constant array:
Example
// 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");Assigned when Declared
Meaning: An array declared with const must be initialized when it is declared.
Using const without initializing the array is a syntax error:
This will not work
const cars;
cars = ["Saab", "Volvo", "BMW"];Arrays declared with var can be initialized at any time.
You can even use the array before it is declared:
Example
cars = ["Saab", "Volvo", "BMW"];
var cars;Const Block Scope
An array declared with const has Block Scope .
An array declared in a block is not the same as an array declared outside the block:
Example
const cars = ["Saab", "Volvo", "BMW"];
// Here cars[0] is "Saab" {
const cars = ["Toyota", "Volvo", "BMW"];
// Here cars[0] is "Toyota"
}
// Here cars[0] is "Saab"An array declared with var does not have block scope:
Example
var cars = ["Saab", "Volvo", "BMW"];
// Here cars[0] is "Saab" { var cars = ["Toyota", "Volvo", "BMW"]; // Here cars[0] is "Toyota"
}
// Here cars[0] is "Toyota"You can learn more about Block Scope in the chapter: JavaScript Scope .
Redeclaring Arrays
Redeclaring an array declared with var is allowed anywhere in a program:
Example
var cars = ["Volvo", "BMW"]; // Allowed
var cars = ["Toyota", "BMW"]; // Allowed
cars = ["Volvo", "Saab"]; // AllowedRedeclaring or reassigning an array to const , in the same scope, or in the same block, is not allowed:
Example
var cars = ["Volvo", "BMW"]; // Allowed
const cars = ["Volvo", "BMW"]; // Not allowed
{
var cars = ["Volvo", "BMW"]; // Allowed
const cars = ["Volvo", "BMW"]; // Not allowed
}Redeclaring or reassigning an existing const array, in the same scope, or in the same block, is not allowed:
Example
const cars = ["Volvo", "BMW"]; // Allowed
const cars = ["Volvo", "BMW"]; // Not allowed
var cars = ["Volvo", "BMW"]; // Not allowed
cars = ["Volvo", "BMW"]; // Not allowed
{
const cars = ["Volvo", "BMW"]; // Allowed
const cars = ["Volvo", "BMW"]; // Not allowed
var cars = ["Volvo", "BMW"]; // Not allowed
cars = ["Volvo", "BMW"]; // Not allowed
}Redeclaring an array with const , in another scope, or in another block, is allowed:
Example
const cars = ["Volvo", "BMW"]; // Allowed
{
const cars = ["Volvo", "BMW"]; // Allowed
}
{
const cars = ["Volvo", "BMW"]; // Allowed
}