Const в массивах JavaScript

ECMAScript 2015 (ES6)

В 2015 году JavaScript ввел важный новый ключевой слово:const.

Используя const Объявление массива стало обычной практикой:

Пример

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

Попробуйте сами

Не может быть переразмещен

Используя const Массив, объявленный, не может быть переразмещен:

Пример

const cars = ["Saab", "Volvo", "BMW"];
cars = ["Toyota", "Volvo", "Audi"];    // ОШИБКА

Попробуйте сами

Массив не является константой

Ключевое слово const Имеет несколько вводящих в заблуждение моментов.

Оно не определяет массив констант. Оно определяет постоянную ссылку на массив.

Таким образом, мы все еще можем изменить элемент массива констант.

Элемент можно переразместить

Вы можете изменить элемент массива констант:

Пример

// Вы можете создать массив констант:
const cars = ["Saab", "Volvo", "BMW"];
// Вы можете изменить элемент:
cars[0] = "Toyota";
// Вы можете добавить элемент:
cars.push("Audi");

Попробуйте сами

Поддержка браузера

Internet Explorer 10 или более ранние версии не поддерживают const Ключевое слово.

В таблице указаны версии первых браузеров, которые полностью поддерживают ключевое слово const:

Chrome IE Firefox Safari Opera
Chrome 49 IE 11 / Edge Firefox 36 Safari 10 Opera 36
Март 2016 года Октябрь 2013 года Февраль 2015 года Сентябрь 2016 года Март 2016 года

Присвоение значения при объявлении

JavaScript const Присвоение значения при

Это означает, что переменная должна быть присвоена значение при её объявлении: const Объявленный массив должен быть инициализирован при его объявлении.

Используя const А неинициализация массива является грамматической ошибкой:

Пример

Не работает:

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

Используя var Объявленный массив можно инициализировать в любое время.

Вы даже можете использовать этот массив до его объявления:

Пример

Нет проблем:

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

Попробуйте сами

область видимости блоков const

Используя const Объявленный массив имеетОбласть видимости блоков.

Массивы, объявленные в блоке, отличаются от массивов, объявленных вне блока:

Пример

const cars = ["Saab", "Volvo", "BMW"];
// Здесь cars[0] равен "Saab"
{
  const cars = ["Toyota", "Volvo", "BMW"];
  // Здесь cars[0] равен "Toyota"
}
// Здесь cars[0] равен "Saab"

Попробуйте сами

Используя var Объявленный массив не имеет области видимости блоков:

Пример

var cars = ["Saab", "Volvo", "BMW"];
// Здесь cars[0] равен "Saab"
{
  var cars = ["Toyota", "Volvo", "BMW"];
  // Здесь cars[0] равен "Toyota"
}
// Здесь cars[0] равен "Toyota"

Попробуйте сами

Более подробную информацию о области видимости блоков можно узнать в следующих разделах:Область видимости JavaScript.

повторное объявление массива

В программе можно в любом месте использовать var Переопределение массива:

Пример

var cars = ["Volvo", "BMW"];   // Допускается
var cars = ["Toyota", "BMW"];  // Допускается
cars = ["Volvo", "Saab"];      // Допускается

Не допускается повторное объявление или повторное присвоение массива в одном и том же области видимости или блоке const:

Пример

var cars = ["Volvo", "BMW"];         // Допускается
const cars = ["Volvo", "BMW"];       // Не допускается
{
  var cars = ["Volvo", "BMW"];         // Допускается
  const cars = ["Volvo", "BMW"];       // Не допускается
}

Не допускается повторное объявление или повторное присвоение существующего в одном и том же области видимости или блоке const Массив:

Пример

const cars = ["Volvo", "BMW"];       // Разрешено
const cars = ["Volvo", "BMW"];       // Не допускается
var cars = ["Volvo", "BMW"];         // Запрещено
cars = ["Volvo", "BMW"];             // Запрещено
{
  const cars = ["Volvo", "BMW"];     // Разрешено
  const cars = ["Volvo", "BMW"];     // Запрещено
  var cars = ["Volvo", "BMW"];       // Запрещено
  cars = ["Volvo", "BMW"];           // Запрещено
}

Разрешено использовать в другом контексте или в другом блоке const Переопределение массива:

Пример

const cars = ["Volvo", "BMW"];       // Разрешено
{
  const cars = ["Volvo", "BMW"];     // Разрешено
}
{
  const cars = ["Volvo", "BMW"];     // Разрешено
}

Полное руководство по массивам

Для полной справки, пожалуйста, посетите нашу полную Руководство JavaScript Array.

Этот справочник содержит описание всех свойств и методов массивов и примеры.