const

Создаём переменную, значение которой нельзя изменить.

Время чтения: меньше 5 мин

Кратко

Секция статьи "Кратко"

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

Пример

Секция статьи "Пример"
        
          
          const DAYS_IN_YEAR = 365
          const DAYS_IN_YEAR = 365

        
        
          
        
      

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

Секция статьи "Как это понять"

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

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

        
          
          const DAYS_IN_YEAR = 365console.log(DAYS_IN_YEAR)DAYS_IN_YEAR = 600// ошибка, константы нельзя переопределять
          const DAYS_IN_YEAR = 365

console.log(DAYS_IN_YEAR)

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

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

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

Например, мы можем добавить новый объект в массив, но при попытке записать в переменную series пустой массив произойдёт ошибка:

        
          
          const series = ['Доктор Хаус', 'Клиника', 'Чёрное зеркало']series.push('Молодой папа')series = [] // 🙅‍♂️ не можем _заменить_ один массив на другой
          const series = ['Доктор Хаус', 'Клиника', 'Чёрное зеркало']
series.push('Молодой папа')
series = [] // 🙅‍♂️ не можем _заменить_ один массив на другой

        
        
          
        
      

Та же история с объектами:

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

        
        
          
        
      

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

Секция статьи "Зачем нужны константы?"

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

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

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

Как пишется

Секция статьи "Как пишется"

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

        
          
          const name = value
          const name = value

        
        
          
        
      

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

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

На практике

Секция статьи "На практике"

Николай Лопин советует

Секция статьи "Николай Лопин советует"

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

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

        
        
          
        
      

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

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

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