Const JavaScript
- Предыдущая страница JS Let
- Следующая страница Операторы JS
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";
- Предыдущая страница JS Let
- Следующая страница Операторы JS