Const 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 = 6;
  // В этом месте x = 6
}
// В этом месте x = 10

Попробуйте сами

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

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

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

Неправильно

const PI;
PI = 3.14159265359;

Правильно

const PI = 3.14159265359;

Не真正的 константа

Ключевое слово const Некоторая вводящая в заблуждение.

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

Таким образом, мы не можем изменить исходное значение константы, но мы можем изменить свойства константного объекта.

Исходное значение

Если мы назначим исходное значение константе, мы не можем изменить исходное значение:

Пример

const PI = 3.141592653589793;
PI = 3.14;      // Будет ошибка
PI = PI + 10;   // Также будет ошибка

Попробуйте сами

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

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

Пример

// Вы можете создать const объект:
const car = {type:"porsche", model:"911", color:"Black"};
// Вы можете изменить свойства:
car.color = "White";
// Вы можете добавить атрибут:
car.owner = "Bill";

Попробуйте сами

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

Пример

const car = {type:"porsche", model:"911", color:"Black"};
car = {type:"Volvo", model:"XC60", color:"White"};    // ОШИБКА

Попробуйте сами

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

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

Пример

// Вы можете создать константу массива:
const cars = ["Audi", "BMW", "porsche"];
// Вы можете изменить элемент:
cars[0] = "Honda";
// Вы можете добавить элемент:
cars.push("Volvo");

Попробуйте сами

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

Пример

const cars = ["Audi", "BMW", "porsche"];
cars = ["Honda", "Toyota", "Volvo"];    // ОШИБКА

Попробуйте сами

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

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

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

Chrome 49 IE / Edge 11 Firefox 36 Safari 10 Opera 36
Март 2016 года Октябрь 2013 года Февраль 2015 года Сентябрь 2016 года Март 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;   // Разрешено
}

Подъем

Через var Определенные переменные будутПодъемдо вершины. Если вы не знаете, что такое подъем (Hoisting), пожалуйста, изучите эту главу.

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

Пример

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

Попробуйте сами

Через const Определенные переменные не будут подняты на вершину.

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

Пример

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