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

JS Учебник

JS Старт JS Введение JS Установка JS Вывод JS Объявления JS Синтаксис JS Комментарии JS Переменные JS Операторы JS Арифметические JS Присваивание JS Типы данных JS Функции JS Объекты JS События JS Строки JS Методы строки JS Числа JS Методы числа JS Массивы JS Методы массива JS Сортировка массива JS Итерация массива JS Даты JS Форматы дат JS Методы получения дат JS Методы установки дат JS Математические JS Рандомные JS Булевы JS Сравнения JS Условия JS Switch JS Цикл For JS Цикл While JS Прерывание JS Преобразование типов JS Побитовые JS Регулярные выражения JS Ошибки JS Область действия JS Подъём JS Строгий режим JS Ключевое слово this JS Ключевое слово Let JS Ключевое слово Const JS Функции стрелок JS Классы JS Отладка JS Гид по стилю JS Лучшие практики JS Ошибки JS Производительность JS Зарезервированные слова JS Версии JS Версия ES5 JS Версия ES6 JS JSON

JS Формы

JS Формы Формы API

JS Объекты

Определения объектов Свойства объекта Методы объекта Доступ к объектам Конструкторы объектов Прототипы объектов Объект ECMAScript 5

JS Функции

Определения функций Параметры функции Обращение к функции Вызов функции Применение функции Закрытие функции

JS HTML DOM

DOM Введение DOM Методы DOM Документ DOM Элементы DOM HTML DOM CSS DOM Анимация DOM События DOM Слушатель событий DOM Навигация DOM Узлы DOM Коллекции DOM Узловые списки

JS Объектная модель браузера BOM

JS Окно JS Скрин JS Локация JS История JS Навигатор JS Всплывающее оповещение JS Тайминг JS Куки

JS AJAX

AJAX Введение AJAX XMLHttp AJAX Запрос AJAX Отклик AJAX XML Файл AJAX PHP AJAX ASP AJAX База данных AJAX Приложения AJAX Примеры

JS JSON

JSON Введение JSON Синтаксис JSON и XML JSON Типы данных JSON Анализ JSON Stringify JSON Объекты JSON Массивы JSON PHP JSON HTML JSON JSONP

JS и jQuery

jQuery Селекторы jQuery HTML jQuery CSS jQuery DOM

JS Примеры

JS Примеры JS HTML DOM JS HTML Input JS HTML Объекты JS HTML События JS Броузер JS Упражнения JS Викторина JS Сертификат

JS Справочники

JavaScript Объекты HTML DOM Объекты

JavaScript. Уроки для начинающих

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


ECMAScript 2015

ES2015 представил два важных новых ключевых слова JavaScript: let и const.

Переменные, определенные с помощью const ведут себя как переменные let, за исключением того, что они не могут быть переназначены:

Пример

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

Block Scope

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

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

Пример

var x = 10;
// здесь x является 10
{
  const x = 2;
  // здесь x является 2
}
// здесь x является 10
Попробуйте сами »

Подробнее о Block Scope вы можете узнать в предыдущей главе: JavaScript Let.


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

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

Неправильно

const PI;
PI = 3.14159265359;

Правильно

const PI = 3.14159265359;

Не реальные константы

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

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

Из-за этого мы не можем изменить постоянные примитивные значения, но мы можем изменить свойства постоянных объектов.


Примитивные значения

Если мы присваиваем примитивное значение константе, мы не можем изменить примитивное значение:

Пример

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

Постоянные (constant) объекты могут меняться

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

Пример

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

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

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

Но вы не можете переназначить постоянный (constant) объект:

Пример

const car = {type:"Fiat", model:"500", color:"white"};
car = {type:"Volvo", model:"EX60", color:"red"};    // ERROR
Попробуйте сами »

Постоянные (constant) массивы могут измениться

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

Пример

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

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

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

Но вы не можете переназначить постоянный (constant) массив:

Пример

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

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

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

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

Chrome 49 IE / Edge 11 Firefox 36 Safari 10 Opera 36
Mar, 2016 Oct, 2013 Feb, 2015 Sep, 2016 Mar, 2016

Переопределение

Переопределение 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 в той же области или в том же блоке не разрешено:

Пример

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

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

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

Пример

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

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

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

Hoisting / Подъём

Переменные, определенные с помощью var поднимаются вверх (если вы не знаете, что такое Hoisting, прочитайте раздел JS Подъём).

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

Пример

carName = "Volvo";    // Вы МОЖЕТЕ использовать здесь carName
var carName;
Попробуйте сами »

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

Переменная const не может быть использована перед её объявлением:

Пример

carName = "Volvo";    // Вы НЕ можете использовать здесь carName
const carName = "Volvo";