Учебник по 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 Случайный JS Булевы значения Сравнение JS JS-условия JS-переключатель JS цикл для Цикл JS для входа Цикл JS для Цикл JS во время Перерыв JS JS-итерации JS-наборы JS-карты JS Typeof Преобразование типов JS JS побитовый JS регулярное выражение JS-ошибки Область JS JS-подъем Строгий режим JS JS это ключевое слово Функция стрелки JS JS-классы JS JSON JS-отладка Руководство по стилю JS Лучшие практики JS JS-ошибки JS-производительность Зарезервированные слова JS

JS-версии

JS-версии JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE/пограничный История JS

JS-объекты

Определения объектов Свойства объекта Методы объекта Отображение объекта Средства доступа к объектам Конструкторы объектов Прототипы объектов Итерации объектов Наборы объектов Карты объектов Ссылка на объект

JS-функции

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

JS-классы

Введение в класс Наследование классов Статический класс

JS асинхронный

Обратные вызовы JS JS асинхронный JS-обещания JS асинхронный/ожидание

JS HTML DOM

Дом Введение DOM-методы Документ DOM DOM-элементы DOM HTML DOM-формы ДОМ CSS DOM-анимации События ДОМ Слушатель событий DOM DOM-навигация DOM-узлы Коллекции DOM Списки узлов DOM

Спецификация браузера JS

JS-окно JS-экран Местоположение JS История JS JS-навигатор Всплывающее оповещение JS JS Тайминг JS-куки

JS-веб-API

Введение в веб-API API веб-форм API истории веб-поиска API веб-хранилища API веб-работника API веб-выборки API веб-геолокации

JS АЯКС

Введение в АЯКС AJAX XMLHttp АЯКС-запрос AJAX-ответ XML-файл AJAX АЯКС PHP АЯКС АСП База данных AJAX AJAX-приложения Примеры AJAX

JS JSON

Введение в JSON Синтаксис JSON JSON против XML Типы данных JSON Анализ JSON Строковая JSON JSON-объекты JSON-массивы JSON-сервер JSON PHP JSON HTML JSON JSONP

JS против JQuery

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

JS-графика

JS-графика JS Холст JS сюжет JS Chart.js JS Google Диаграмма JS D3.js

JS-примеры

JS-примеры JS HTML DOM JS HTML-ввод HTML-объекты JS HTML-события JS JS-браузер JS-редактор JS-упражнения JS-викторина JS-сертификат

JS-ссылки

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


Константа JavaScript

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

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

Переменные, определенные с constпомощью, не могут быть переназначены.

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

Не может быть переназначен

Переменная constне может быть переназначена:

Пример

const PI = 3.141592653589793;
PI = 3.14;      // This will give an error
PI = PI + 10;   // This will also give an error

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

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

Правильный

const PI = 3.14159265359;

Неправильно

const PI;
PI = 3.14159265359;

Когда использовать константу JavaScript?

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

Используйте const, когда вы объявляете:

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

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

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

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

Из-за этого вы НЕ можете:

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

    Но вы можете:

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

Константные массивы

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

Пример

// You can create a constant array:
const cars = ["Saab", "Volvo", "BMW"];

// You can change an element:
cars[0] = "Toyota";

// You can add an element:
cars.push("Audi");

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

Пример

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

cars = ["Toyota", "Volvo", "Audi"];    // ERROR

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

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

Пример

// You can create a const object:
const car = {type:"Fiat", model:"500", color:"white"};

// You can change a property:
car.color = "red";

// You can add a property:
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


Область блока

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

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

Пример

const x = 10;
// Here x is 10

{
const x = 2;
// Here x is 2
}

// Here x is 10

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


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

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

Пример

var x = 2;     // Allowed
var x = 3;     // Allowed
x = 4;         // Allowed

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

Пример

var x = 2;     // Allowed
const x = 2;   // Not allowed

{
let x = 2;     // Allowed
const x = 2;   // Not allowed
}

{
const x = 2;   // Allowed
const x = 2;   // Not allowed
}

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

Пример

const x = 2;     // Allowed
x = 2;           // Not allowed
var x = 2;       // Not allowed
let x = 2;       // Not allowed
const x = 2;     // Not allowed

{
  const x = 2;   // Allowed
  x = 2;         // Not allowed
  var x = 2;     // Not allowed
  let x = 2;     // Not allowed
  const x = 2;   // Not allowed
}

Допускается повторное объявление переменной с const, в другой области или в другом блоке:

Пример

const x = 2;       // Allowed

{
  const x = 3;   // Allowed
}

{
  const x = 4;   // Allowed
}

Постоянный подъем

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

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

Пример

Хорошо:

carName = "Volvo";
var carName;

Если вы хотите узнать больше о подъеме, изучите главу « Подъем JavaScript» .

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

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

Пример

alert (carName);
const carName = "Volvo";