This site is mobile accessible. Press the "Tap Here" button to use a different font-size.


Smartphone icons created by Freepik - Flaticon

  • 4.3.4 JS Array Const

    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"];

    Try it yourself

    Cannot be Reassigned

    An array declared with const cannot be reassigned:

    Example

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

    Try it yourself

    Arrays 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");

    Try it yourself

    Browser Support

    • The const keyword is not supported in Internet Explorer 10 or earlier.
    • The following table defines the first browser versions with full support for the const keyword:
    Chrome browser Edge browser Firefox browser Safari browser Opera browser
    Chrome 49 IE 11 / Edge Firefox 36 Safari 10 Opera 36
    Mar, 2016 Oct, 2013 Feb, 2015 Sep, 2016 Mar, 2016

    Assigned when Declared

    • JavaScript const variables must be assigned a value when they are declared:
    • Meaning: An array declared with const must be initialized when it is declared.
    • Using const without initializing the array is a syntax error:

    Example

    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

    This is OK:

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

    Try it yourself

    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" 

    Try it yourself

    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" 

    Try it yourself

    You can learn more about Block Scope in a later chapter.

    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"];      // Allowed

    Redeclaring 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
    }
    Navigate this module

    Eventually the navigation links, above, will be replaced by these << (previous) and >> (next) buttons below.



    JavaScript icons used in the buttons provided by ICONS8.COM. Smartphone icons created by Freepik - Flaticon