← JavaScript/Переменные#50 из 383← ПредыдущийСледующий →+15 XP
Полезно по теме:Гайд: как учить JavaScriptПрактика: JS базаПрактика: async и сетьТермин: Closure

Переменные: let и const

Представь, что ты разрабатываешь страницу профиля пользователя на Авито. Тебе нужно где-то хранить имя пользователя, количество его объявлений, рейтинг. Для этого и нужны переменные.

На основе предыдущих уроков

В этом уроке мы продолжаем работать с console.log из урока 01, но теперь будем сохранять данные в переменные перед выводом.

Какую проблему решают переменные?

Без переменных ты не можешь ничего сохранить. Вычислил цену со скидкой — и сразу потерял. Переменная — это именованный контейнер, который хранит данные пока они нужны.

let и const — в чём разница?

`const` — константа. Значение задаётся один раз и не меняется:

const siteName = 'Авито'     // название сайта не меняется
const maxFileSize = 10485760 // 10 МБ — лимит задан раз и навсегда

`let` — переменная. Значение можно перезаписать:

let viewCount = 0      // счётчик просмотров объявления
viewCount = viewCount + 1  // кто-то открыл объявление
viewCount++            // ещё один просмотр

Правило большого пальца

Всегда начинай с `const`. Если понял что значение должно меняться — замени на let. Это делает код предсказуемым: видишь const — знаешь что значение не изменится.

Соглашения об именах

  • Имена пишутся в camelCase: firstName, cartItemCount
  • Должны объяснять что хранится: userAge лучше чем a
  • Константы-конфиги иногда пишут UPPER_CASE: MAX_RETRY_COUNT
  • Типичные ошибки

    Ошибка 1: Попытка изменить const

    const price = 1000
    price = 1500  // TypeError: Assignment to constant variable
    // Если цена меняется — объявляй через let

    Ошибка 2: Использовать переменную до объявления

    console.log(userName)  // ReferenceError: Cannot access before initialization
    const userName = 'Алексей'
    // Объявляй переменные до использования

    Ошибка 3: Одна буква как имя переменной

    const n = getUserName()  // Что такое n? Непонятно!
    const userName = getUserName()  // Сразу ясно что хранится

    В реальных проектах

    const используется в 80-90% случаев в современном JS-коде. let нужен для счётчиков, флагов состояния и накопителей в циклах. Старый var больше не используют — у него проблемы с областью видимости.

    Примеры

    Профиль продавца на маркетплейсе

    // Данные продавца — не меняются
    const sellerId = 'usr_48291'
    const sellerName = 'Магазин "Технодром"'
    const registeredYear = 2019
    
    // Динамические данные — меняются в процессе
    let activeListings = 47
    let totalSales = 1203
    let rating = 4.8
    
    // Продали ещё один товар
    totalSales = totalSales + 1
    activeListings--  // сняли объявление
    
    // Рейтинг обновился после нового отзыва
    rating = 4.9
    
    console.log('Продавец:', sellerName)
    console.log('На сайте с:', registeredYear)
    console.log('Активных объявлений:', activeListings)   // 46
    console.log('Продаж всего:', totalSales)              // 1204
    console.log('Рейтинг:', rating)                       // 4.9

    Переменные: let и const

    Представь, что ты разрабатываешь страницу профиля пользователя на Авито. Тебе нужно где-то хранить имя пользователя, количество его объявлений, рейтинг. Для этого и нужны переменные.

    На основе предыдущих уроков

    В этом уроке мы продолжаем работать с console.log из урока 01, но теперь будем сохранять данные в переменные перед выводом.

    Какую проблему решают переменные?

    Без переменных ты не можешь ничего сохранить. Вычислил цену со скидкой — и сразу потерял. Переменная — это именованный контейнер, который хранит данные пока они нужны.

    let и const — в чём разница?

    `const` — константа. Значение задаётся один раз и не меняется:

    const siteName = 'Авито'     // название сайта не меняется
    const maxFileSize = 10485760 // 10 МБ — лимит задан раз и навсегда

    `let` — переменная. Значение можно перезаписать:

    let viewCount = 0      // счётчик просмотров объявления
    viewCount = viewCount + 1  // кто-то открыл объявление
    viewCount++            // ещё один просмотр

    Правило большого пальца

    Всегда начинай с `const`. Если понял что значение должно меняться — замени на let. Это делает код предсказуемым: видишь const — знаешь что значение не изменится.

    Соглашения об именах

  • Имена пишутся в camelCase: firstName, cartItemCount
  • Должны объяснять что хранится: userAge лучше чем a
  • Константы-конфиги иногда пишут UPPER_CASE: MAX_RETRY_COUNT
  • Типичные ошибки

    Ошибка 1: Попытка изменить const

    const price = 1000
    price = 1500  // TypeError: Assignment to constant variable
    // Если цена меняется — объявляй через let

    Ошибка 2: Использовать переменную до объявления

    console.log(userName)  // ReferenceError: Cannot access before initialization
    const userName = 'Алексей'
    // Объявляй переменные до использования

    Ошибка 3: Одна буква как имя переменной

    const n = getUserName()  // Что такое n? Непонятно!
    const userName = getUserName()  // Сразу ясно что хранится

    В реальных проектах

    const используется в 80-90% случаев в современном JS-коде. let нужен для счётчиков, флагов состояния и накопителей в циклах. Старый var больше не используют — у него проблемы с областью видимости.

    Примеры

    Профиль продавца на маркетплейсе

    // Данные продавца — не меняются
    const sellerId = 'usr_48291'
    const sellerName = 'Магазин "Технодром"'
    const registeredYear = 2019
    
    // Динамические данные — меняются в процессе
    let activeListings = 47
    let totalSales = 1203
    let rating = 4.8
    
    // Продали ещё один товар
    totalSales = totalSales + 1
    activeListings--  // сняли объявление
    
    // Рейтинг обновился после нового отзыва
    rating = 4.9
    
    console.log('Продавец:', sellerName)
    console.log('На сайте с:', registeredYear)
    console.log('Активных объявлений:', activeListings)   // 46
    console.log('Продаж всего:', totalSales)              // 1204
    console.log('Рейтинг:', rating)                       // 4.9

    Задание

    Ты создаёшь профиль пользователя для социальной сети. Объяви переменные: имя пользователя (const), количество подписчиков (let), количество постов (let). Затем добавь 100 новых подписчиков и опубликуй ещё один пост. Выведи итоговые данные.

    Подсказка

    Для увеличения числа: followers = followers + 100, или короче: followers += 100

    Загружаем среду выполнения...
    Загружаем AI-помощника...