ЛУЧШИЙ САЙТ ДЛЯ ВЕБ-РАЗРАБОТЧИКОВ

Базовый JavaScript

JS Учебник JS Синтаксис JS Переменные JS Операторы JS If Условия JS Циклы JS Строки JS Числа JS Функции JS Объекты JS Даты JS Массивы JS Наборы JS Карты JS Математические JS RegExp JS Типы данных JS Ошибки JS Дебагинг JS События JS Программирование JS Справочники JS UTF-8 Характеры

JS Расширенный

JS Версии JS Функции JS Объекты JS Классы JS Итерации JS Промисы JS Модули JS HTML DOM JS Окна JS Web API JS AJAX JS JSON JS jQuery JS Графика JS Примеры JS Объекты

JavaScript. Уроки W3Schools для начинающих на русском языке

Ua En Es De Fr

JavaScript Ключевое слово Const

Ключевое слово const было введено в ES6 (2015).

Переменные, определённые с помощью const не могут быть повторно объявлены.

Переменные, определённые с помощью const нельзя переназначить.

Переменные, определённые с помощью const имеют область действия блока.

Нельзя переназначить

Переменную const нельзя переназначить:

Пример

const PI = 3.141592653589793;
PI = 3.14;      // Это выдаст ошибку
PI = PI + 10;   // Это также выдаст ошибку
Попробуйте сами »

Должно быть назначено

JavaScript переменным const должно быть присвоено значение при их объявлении.

Правильно

const PI = 3.14159265359;

Неправильно

const PI;
PI = 3.14159265359;

Когда использовать JavaScript const?

Как правило, всегда объявляйте переменные с помощью const, если вы не знаете, что значение изменится.

Всегда используйте const во время объявления:

  • Новый массив
  • Новый объект
  • Новая функция
  • Новый RegExp

Постоянные объекты и массивы

Ключевое слово const немного вводит в заблуждение.

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

Из-за этого вы НЕ МОЖЕТЕ:

  • Переназначить постоянное значение
  • Переназначить постоянный массив
  • Переназначить постоянный объект

Но вы МОЖЕТЕ:

  • Изменить постоянный массив
  • Изменить постоянный объект

Постоянные массивы

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

Пример

// Вы можете создать постоянный массив:
const cars = ["Saab", "Volvo", "BMW"];

// Вы можете изменить элемент:
cars[0] = "Toyota";

// Вы можете добавить элемент:
cars.push("Audi");
Попробуйте сами »

Но вы не можете переназначить массив:

Пример

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

cars = ["Toyota", "Volvo", "Audi"];    // ERROR (ОШИБКА)
Попробуйте сами »

Постоянные объекты

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

Пример

// Вы можете создать объект const:
const car = {type:"Fiat", model:"500", color:"white"};

// Вы можете изменить свойство:
car.color = "red";

// Вы можете добавить свойство:
car.owner = "Johnson";
Попробуйте сами »

Но вы не можете переназначить объект:

Пример

const car = {type:"Fiat", model:"500", color:"white"};

car = {type:"Volvo", model:"EX60", color:"red"};    // ERROR (ОШИБКА)
Попробуйте сами »

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

Ключевое слово 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

Область действия блока

Объявление переменной с помощью const аналогично let когда дело доходит Области действия блока.

Переменная х, объявленная в блоке в этом примере, не совпадает с переменной x, объявленной вне блока:

Пример

const x = 10;
// Здесь x равно 10

{
const x = 2;
// Здесь x равно 2
}

// Здесь x равно 10
Попробуйте сами »

Вы можете узнать больше про область действия блока в разделе JavaScript Область действия.


Повторное объявление

Повторное объявление JavaScript переменной var разрешено в любом месте программы:

Пример

var x = 2;     // Разрешено
var x = 3;     // Разрешено
x = 4;         // Разрешено

Повторное объявление существующей переменной var или let на const в той же области не допускается:

Пример

var x = 2;     // Разрешено
const x = 2;   // Не разрешено

{
let x = 2;     // Разрешено
const x = 2;   // Не разрешено
}

{
const x = 2;   // Разрешено
const x = 2;   // Не разрешено
}

Переназначение существующей переменной const в той же области действия не разрешено:

Пример

const x = 2;     // Разрешено
x = 2;           // Не разрешено
var x = 2;       // Не разрешено
let x = 2;       // Не разрешено
const x = 2;     // Не разрешено

{
  const x = 2;   // Разрешено
  x = 2;         // Не разрешено
  var x = 2;     // Не разрешено
  let x = 2;     // Не разрешено
  const x = 2;   // Не разрешено
}

Разрешено повторное объявление переменной с помощью const в другой области действия или в другом блоке:

Пример

const x = 2;       // Разрешено

{
  const x = 3;   // Разрешено
}

{
  const x = 4;   // Разрешено
}

Подъём (хостинг) Const

Переменные, определённые с помощью var поднимаются вверх и могут быть инициализированы в любое время.

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

Пример

Это OK:

carName = "Volvo";
var carName;
Попробуйте сами »

Если вы хотите узнать больше о подъёме (хостинге), изучите раздел JavaScript Хостинг на нашем сайте W3Schools на русском.

Переменные, определённые с помощью const также поднимаются вверх, но не инициализируются.

Важно: использование переменной const перед её объявлением приведёт к ошибке ReferenceError:

Пример

alert (carName);
const carName = "Volvo";
Попробуйте сами »