JavaScript Постоянный массив
ECMAScript 2015 (ES6)
В 2015 году в JavaScript появилось новое важное ключевое слово: const
.
Стало обычной практикой объявлять массивы с использованием константа const
:
Не может быть переназначен
Массив, объявленный с константа const
, не может быть переназначен:
Пример
const cars = ["Сааб", "Вольво", "БМВ"];
cars = ["Тойота", "Вольво", "Ауди"]; // ERROR
Попробуйте сами »
Массивы не являются константами
Ключевое слово константа const
немного вводит в заблуждение.
Оно НЕ определяет постоянный массив. Оно определяет постоянную ссылку на массив.
Из-за чего мы все еще можем изменять элементы постоянного массива.
Элементы могут быть переназначены
Вы можете изменять элементы постоянного массива:
Пример
// Вы можете создать постоянный массив:
const cars = ["Сааб", "Вольво", "БМВ"];
// Вы можете изменить элемент:
cars[0] = "Тойота";
// Вы можете добавить элемент:
cars.push("Ауди");
Попробуйте сами »
Поддержка браузера
Ключевое слово константа const
не поддерживается в Internet Explorer 10 или более ранних версиях.
В следующей таблице определены первые версии браузера с полной поддержкой ключевого слова const
:
Chrome 49 | IE 11 / Edge | Firefox 36 | Safari 10 | Opera 36 |
Mar, 2016 | Oct, 2013 | Feb, 2015 | Sep, 2016 | Mar, 2016 |
Назначается при объявлении
JavaScript переменным const
должно быть присвоено значение при их объявлении:
Значение: Массив, объявленный с константа const
, должен быть инициализирован при его объявлении.
Использование константа const
без инициализации массива является синтаксической ошибкой:
Пример
Это не сработает:
const cars;
cars = ["Сааб", "Вольво", "БМВ"];
Массивы, объявленные с помощью переменной var
, могут быть инициализированы в любое время.
Вы даже можете использовать массив до того, как он будет объявлен:
Область действия постоянного блока
Массив, объявленный с константа const
, имеет Область действия блока.
Массив, объявленный в блоке, не совпадает с массивом, объявленным вне блока:
Пример
const cars = ["Сааб", "Вольво", "БМВ"];
// Здесь cars[0] - является "Сааб"
{
const cars = ["Тойота", "Вольво", "БМВ"];
// Здесь cars[0] является "Тойота"
}
// Здесь cars[0] является "Сааб"
Попробуйте сами »
Массив, объявленный с помощью переменной var
, не имеет области действия блока:
Пример
var cars = ["Сааб", "Вольво", "БМВ"];
// Здесь cars[0] является "Сааб"
{
var cars = ["Тойота", "Вольво", "БМВ"];
// Здесь cars[0] является "Тойота"
}
// Здесь cars[0] является "Тойота"
Попробуйте сами »
Вы можете узнать больше о области действия блока в главе: Область действия JavaScript.
Повторное объявление массивов
Повторное объявление массива, объявленного с помощью переменной var
допускается в любом месте программы:
Пример
var cars = ["Вольво", "БМВ"]; // Допускается
var cars = ["Тойота", "БМВ"]; // Допускается
cars = ["Вольво", "Сааб"]; // Допускается
Повторное объявление или переназначение массива в const
, в той же области или в том же блоке не допускается:
Пример
var cars = ["Вольво", "БМВ"];// Допускается
const cars = ["Вольво", "БМВ"];// Не допускается
{
var cars = ["Вольво", "БМВ"];// Допускается
const cars = ["Вольво", "БМВ"];// Не допускается
}
Повторное объявление или переназначение существующего массива const
, в той же области или в том же блоке не допускается:
Пример
const cars = ["Вольво", "БМВ"];// Допускается
const cars = ["Вольво", "БМВ"];// Не допускается
var cars = ["Вольво", "БМВ"]; // Не допускается
cars = ["Вольво", "БМВ"];// Не допускается
{
const cars = ["Вольво", "БМВ"];// Допускается
const cars = ["Вольво", "БМВ"];// Не допускается
var cars = ["Вольво", "БМВ"];// Не допускается
cars = ["Вольво", "БМВ"];// Не допускается
}
Допускается повторное объявление массива с const
в другой области или в другом блоке:
Пример
const cars = ["Вольво", "БМВ"];// Допускается
{
const cars = ["Вольво", "БМВ"];// Допускается
}
{
const cars = ["Вольво", "БМВ"];// Допускается
}
Полный справочник массива
Для получения полного справочника массива перейдите на наш сайт:
Полный справочник массивов JavaScript.
Справочник содержит описания и примеры всех свойств и методов массива.