САМОСТОЯТЕЛЬНОЕ ОБУЧЕНИЕ ДЛЯ ВЕБ РАЗРАБОТЧИКОВ
×

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 Заявления if...else JS Заявление switch JS Цикл for JS Цикл while JS Заявление break... JS Преобразование... JS Битовые... JS Регулярные выражения JS Ошибки JS Область JS Подъемный JS Строгий JS Ключевое слово this JS Ключевое слово let JS Константы JS Функция стрелки JS Классы JS Отладчик JS Руководство стиля JS Практика JS Распространенные ошибки JS Эффективность JS Зарезервированные слова JS Версии JS Версия ES5 JS Версия ES6 JS Версия 2016 JS Версия 2017 JS JSON

JS Формы

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

JS Объекты

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

JS Функции

Определение функции Параметры функции Вызов функции Вызвать функцию Применение функции Закрытие функции

JS Прочее

Классы введение Наследование класса Статические методы... JS Обратный вызов JS Асинхронный JS Обещания JS Асинхронный синтаксис

JS HTML DOM

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

JS Браузера BOM

JS Window JS Экран JS Расположение JS История JS Навигатор JS Предупреждение JS Синхронизация JS Cookies

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 Строки JSON Объекты JSON Массивы JSON PHP JSON HTML JSON JSONP

JS Веб API

API - Введение API - История API - Хранилище API - Работник API - Извлечь файл API - Геолокации

JS или jQuery

jQuery HTML Селекторы jQuery HTML Элементы jQuery CSS Стили jQuery HTML DOM

JS Примеры

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

JS Справочник

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


JavaScript Константы


ECMAScript 2015

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

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

Пример

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

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

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

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

Пример

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

Вы можете узнать больше о Действие блока в предыдущей главе: JavaScript Let.


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

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

Неверно

const PI;
PI = 3.14159265359;

Верно

const PI = 3.14159265359;

Не настоящие константы

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

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

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


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

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

Пример

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

Константные объекты могут изменяться

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

Пример

// Вы можете создать константный объект:
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"};    // ОШИБКА
Попробуйте сами »

Константные массивы могут изменяться

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

Пример

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

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

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

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

Пример

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

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

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


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

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

Пример

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;   // Разрешено
}

Подъем

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

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

Пример

Хорошо:

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

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

Значение: блоку кода известно о переменной, но ее нельзя использовать, пока она не будет объявлена.

Переменная находится во "временной мертвой зоне" от начала блока до его объявления.

Использование const переменной до ее объявления является синтаксической ошибкой, поэтому код просто не запускается.

Пример

Этот код не запускается:

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