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 в консоли

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

        
          
          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 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
          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)
}

        
        
          
        
      

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

        
          
          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])
}