JavaScript Массив Const
ECMAScript 2015 (ES6)
В 2015 году в JavaScript появилось новое важное ключевое слово: const
.
Стало обычной практикой объявлять массивы с помощью const
:
Невозможно переназначить
Массив, объявленный с помощью const
, нельзя переназначить:
Пример
const cars = ["Saab", "Volvo", "BMW"];
cars = ["Toyota", "Volvo", "Audi"]; // ERROR
Попробуйте сами »
Массивы не являются константами
Ключевое слово const
немного вводит в заблуждение.
Оно НЕ определяет постоянный массив. Оно определяет постоянную ссылку на массив.
Из-за этого мы все ещё можем изменять элементы постоянного массива.
Элементы можно переназначить
Вы можете изменить элементы постоянного массива:
Пример
// Вы можете создать постоянный массив:
const cars = ["Saab", "Volvo", "BMW"];
// Вы можете изменить элемент:
cars[0] = "Toyota";
// Вы можете добавить элемент:
cars.push("Audi");
Попробуйте сами »
Поддержка браузерами
Ключевое слово 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 = ["Saab", "Volvo", "BMW"];
Массивы, объявленные с помощью var
можно инициализировать в любое время.
Вы даже можете использовать массив до того, как он будет объявлен:
Область действия блока 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 Область действия на нашем сайте W3Schools на русском.
Повторное объявление массивов
Повторное объявление массива, объявленного с помощью 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 массивов.
Справочник содержит описания и примеры всех свойств и методов массива.