jb

const vs let

Базовое правило простое: сначала выбирайте const, и только при реальной необходимости - let. Так код читается проще, а случайных переприсваиваний становится меньше. Это правило полезно как "безопасный дефолт": изменение переменной становится осознанным действием, а не случайностью.

const apiUrl = '/api';
const configuration = {
  timeout: 5000,
  retries: 3,
  headers: {
    'Content-Type': 'application/json'
  }
};

const users = await fetchUsers(apiUrl);
const processedData = users.map(transformUser);

const защищает от случайного переприсваивания. Это особенно полезно в больших файлах и при командной разработке.

const MAX_RETRY_ATTEMPTS = 3;
const API_ENDPOINTS = {
  users: '/api/users',
  posts: '/api/posts',
  comments: '/api/comments'
} as const;

// Переприсваивание вызовет ошибку
// MAX_RETRY_ATTEMPTS = 5; // TypeError: Assignment to constant variable

let нужен там, где значение действительно меняется:

// Изменяемые переменные
for (let i = 0; i < users.length; i++) {
  processUser(users[i]);
}

let totalScore = 0;
for (const game of games) {
  totalScore += game.score;
}

let currentUser = null;
if (isAuthenticated) {
  currentUser = await getCurrentUser();
}

Итог:

  • const - выбор по умолчанию;
  • let - только для счетчиков, аккумуляторов и других изменяемых значений;
Редактировать на GitHub