Разбираем классику: var, let и const в JavaScript.

Готовлюсь к собеседованиям и систематизирую знания. Сегодня — разница между объявлением переменных. 1. var — устаревший классик

  • Область видимости: Функциональная. Переменная, объявленная через var, видна везде внутри функции, где ее создали.
  • Поведение при всплытии (hoisting): Всплывает со значением undefined. Это значит, что переменную можно использовать до ее объявления в коде, но ее значение будет undefined.
  • Возможность переопределения: Можно свободно переопределять сколько угодно раз.

2. let — современная гибкость

  • Область видимости: Блочная. Переменная существует только внутри своего блока {} (условия if, цикла for и т.д.).
  • Поведение при всплытии (hoisting): Технически тоже всплывает, но если обратиться к ней до объявления, мы попадем в так называемую временную мертвую зону и получим ошибку ReferenceError.
  • Возможность переопределения: Значение можно менять.

3. const — нерушимая константа

  • Область видимости: Блочная, как и у let. Видима только в рамках своих {}.
  • Поведение при всплытии (hoisting): Ведет себя так же, как let — всплывает, но обращение до объявления вызовет ошибку.
  • Возможность переопределения: Нельзя переприсвоить новое значение. Важный нюанс: если значением является объект или массив, то менять их внутреннее содержимое можно. Const защищает от переприсваивания ссылки, а не от изменения данных внутри.

А на собеседовании вас спросили про эту разницу? Какой самый каверзный вопрос вам задавали? Дополняйте в комментариях! 👇

#JavaScript #Frontend #Собеседование #Junior #ВопросыНаСобес #Программирование #войтивайти