Какие способы объявления переменных знаешь в JavaScript?

«Какие способы объявления переменных знаешь в JavaScript?» — вопрос из категории JavaScript, который задают на 26% собеседований Node.js Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В современном JavaScript (ES6+) используются три основных ключевых слова:

  1. const: Объявляет константную ссылку на значение. Сама ссылка не может быть переназначена, но если значение — объект или массив, его внутреннее состояние можно изменять.

    const PORT = 3000;
    const config = { env: 'production' };
    config.env = 'development'; // Допустимо
    // config = {}; // Ошибка: Assignment to constant variable.
  2. let: Объявляет переменную с блочной областью видимости, значение которой можно изменять.

    let counter = 0;
    if (true) {
      let counter = 10; // Это отдельная переменная в этом блоке
      console.log(counter); // 10
    }
    console.log(counter); // 0
  3. var: Устаревший способ с функциональной областью видимости и поднятием (hoisting). Может приводить к неочевидным ошибкам.

    function example() {
      console.log(x); // undefined (поднята, но не инициализирована)
      var x = 5;
    }

Мой подход в Node.js-проектах:

  • const по умолчанию. Использую для всего, что не планируется переназначавать.
  • let только при необходимости. Например, для счётчиков в циклах или переменных, которые действительно меняют значение.
  • var не использую. Его поведение с hoisting и функциональной областью видимости делает код менее предсказуемым по сравнению с let/const.