Константи у JavaScript

І ось тепер до DAYSINWEEK можна звертатися як до змінної, але вам ніколи не вдасться змінити її значення:
Після того, як константа була оголошена (константи повинні бути ініціалізовані за допомогою ключового слова const, а за ним має йти ім'я константи, яке слідує правилам іменування змінних), її ім'я буде зарезервовано: ви вже не зможете назвати змінну DAYSINWEEK і мати константу з таким ж ім'ям, чи навпаки.
Ключове слово const має хорошу підтримку у сучасних браузерах: IE11 та Spartan, Firefox 31+, Opera 12+, Safari 5.1.7+, iOS 7 та вище, разом із Chrome 36+. Однак є кілька важливих застережень:
Chrome не підтримує виведення помилки під час спроби перезаписати константу. Значення константи в будь-якому випадку не буде змінено, але недосвідчений розробник може подумати, що нове значення було застосовано, оскільки не було виведено жодної помилки.

Константи не створюють нову область видимості Webkit. Тобто. константи можуть бути видимими поза поточної області видимості.
Firefox 35 і нижче дозволяє вам "на льоту" змінити значення const. Це виправлено у Firefox 36+.
Також слід зазначити, що проблеми з Webkit виникають тільки якщо не використовується режим strict (про який йтиметься в одній з наступних статей).
Чи можна зараз використовувати ключове слово const у реальних проектах?
Вибір, чи використовувати ключове слово const у вашому коді чи ні, буде залежати від кількох факторів: найважливіше те, якими версіями браузерів користуються відвідувачі ваших сайтів, оскільки використання ключового слова const вважатиметься помилкою в таких браузерах, як IE10. Якщо ви хочете використовувати ключове слово const у процесі розробки, але неготові застосовувати його в реальних проектах, то у вас є кілька варіантів:
Варіант 1: використовувати транспілер (транспілятор)
Транспілери (transpilers), як випливає з назви, трансформують ваш код під час його компіляції в іншу мову: у цьому випадку з версії специфікації ES6 (у якій з'явилося ключове слово const) в ES5. Це дозволяє вам писати код на новішій версії мови, але в реальному проекті буде використовуватися версія, яка сумісна з ширшим колом браузерів. Едді Озмані (Addy Osmani) склав чудовий список ECMAScript транспілерів.
Варіант 2: Визначення константи як властивість об'єкта
Це зробить значення доступним «тільки для читання» (read-only), хоча цей варіант є не найвитонченішим: