skip to main content

const

js

Кратко 🔗

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

Пример 🔗

const DAYS_IN_YEAR = 365

Как это понять 🔗

Константы — те же переменные. Единственная разница в том, что их нельзя переопределить.

Если попробовать это сделать, то код упадёт с ошибкой TypeError: invalid assignment to const:

const DAYS_IN_YEAR = 365

console.log(DAYS_IN_YEAR)

DAYS_IN_YEAR = 600 // ошибка, константы нельзя переопределять

В консоли: ошибка TypeError в консоли

☝️ Если константа хранит массив или объект, то сам массив/объект изменять можно! Нельзя заменить один объект на другой. Это происходит из-за того, что константа хранит ссылку на сложное значение, а не само значение.

const series = ["Doctor House", "Scrubs", "Black Mirror"]
series.push("The Young Pope") // можем изменять сам массив
series = [] // 🙅‍♂️ не можем _заменить_ один массив на другой

// та же история с объектами
const person = { name: "X Æ A-12", lastName: "Musk" }
person.age = 0 // можем изменять объект
person = { name: "Педро" } // 🙅‍♀️ не можем заменить на новый объект

Зачем нужны константы? 🔗

Константы защищают код от случайной перезаписи важных значений.

Применяют константы в двух случаях:

  • мы хотим объявить переменную, которая хранит фундаментальное значение для программы. Например, количество дней в году, минимальную сумму заказа, форматы дат и т.д.
  • мы объявляем переменную и устанавливаем ей значение всего один раз

Как пишется 🔗

Константы объявляются так же, как и переменные:

const name = value

name Имя константы. Может использоваться любой допустимый идентификатор.

value Значение константы. Любое допустимое выражение.

В работе 🔗

Константы в современном JS используют чаще, чем переменные. В большинстве случаев, значение переменной устанавливается только один раз. Хорошей практикой считается объявлять такие переменные через const и писать название переменной в camelCase, чтобы подчеркнуть этот факт:

for (let i = 0; i < users.length; ++i) {
const user = users[i]
printUserInfo(user)
}

Используй CAPS_WITH_UNDER формат именования, если нужно объявить константу, которая хранит важное значение для программы: количество элементов на странице по умолчанию, формат даты, максимальное количество заказов и т.д.

const ITEMS_PER_PAGE = 25

for (let i = 0; i < products.length && i < ITEMS_PER_PAGE; i++) {
printItem(products[i])
}