TGViewer
Frontend | Вопросы собесов Frontend | Вопросы собесов @easy_javascript_ru · 17.6K subscribers
Post #91 8.15K
Каким способом можно объявить переменные, в чем отличия ?
Спросят с вероятностью 17%

Переменные можно объявить тремя основными способами: используя ключевые слова var, let и const. Рассмотрим каждый из них подробнее:

1️⃣ var:

- Область видимости: Имеет функциональную область видимости, что означает, что переменная, объявленная с помощью нее внутри функции, доступна в любом месте этой функции. Если она объявлена вне функции, она становится глобальной.
- Поднятие (Hoisting)
: Переменные, объявленные через нее, поднимаются в начало функции или глобальной области видимости, но инициализация остаётся на своём месте. Это значит, что переменную можно использовать до её объявления в коде.
- Перезаписываемость: Можно повторно объявить и изменить переменную, используя ее.

2️⃣ let:

- Область видимости: Имеет блочную область видимости, ограниченную фигурными скобками {}, в которых она была объявлена, например, внутри циклов, условий или блоков кода.
- Поднятие (Hoisting): Поднятие происходит, но в отличие от var, доступ к переменной до её объявления вызывает ошибку ReferenceError.
- Перезаписываемость: Можно изменить значение переменной, но нельзя повторно объявить её в той же области видимости.

3️⃣ const:

- Область видимости: Как и let, имеет блочную область видимости.
- Поднятие (Hoisting): Поднимается так же, как и let, с теми же ограничениями доступа до объявления.
- Перезаписываемость: Нельзя изменить значение. Однако, если переменная ссылается на объект или массив, то можно изменить содержимое объекта или массива, но не саму ссылку.
- Необходима инициализация: При объявлении переменной с const необходимо сразу же инициализировать её значением.
// Использование var
var x = 5;
console.log(x); // 5
var x = 10; // Переопределение возможно
console.log(x); // 10

// Использование let
let y = "hello";
console.log(y); // hello
y = "world"; // Переопределение значения допустимо
console.log(y); // world
// let y = "test"; // Ошибка: Identifier 'y' has already been declared

// Использование const
const z = { message: "constant" };
console.log(z.message); // constant
z.message = "changed"; // Изменение свойства объекта допустимо
console.log(z.message); // changed
// const z = "new"; // Ошибка: Identifier 'z' has already been declared


- var имеет функциональную область видимости, поднимается и позволяет переопределение переменных.
- let имеет блочную область видимости, поднимается с ограничением доступа до объявления и позволяет изменять значения, но не допускает повторное объявление в той же области видимости.
- const также имеет блочную область видимости, требует инициализации при объявлении, запрещает изменение присвоенного значения (хотя позволяет изменять содержимое объектов) и не допускает повторного объявления.

➡️ Примеры ответов
➡️ Список всех вопросов на Frontend Developer

🧩 Идущий | 🔐 Собесы | 🔐 Тестовые
  • 👍 36
  • 🔥 5
  • ❤ 2
More from @easy_javascript_ru
  1. Oct 18, 2026🤔 Что такое делегирование? Делегирование событий (Event Delegation) — это техника, при ко…
  2. Oct 17, 2026🤔 Откуда взялся CSS? CSS (Cascading Style Sheets) появился в 1996 году для отделения стил…
  3. Oct 17, 2026🤔 Какие значения будут являться falsy значениями? В JavaScript значения, которые при прив…
  4. Oct 16, 2026🤔 Что такое meta теги? Meta-теги – это специальные HTML-теги, которые содержат метаинформ…
  5. Oct 15, 2026🤔 Какие преимущества у di? Dependency Injection (DI) – это паттерн проектирования, которы…
  6. Oct 14, 2026🤔 Зачем создавались библиотеки react и другие? Библиотеки, такие как React, создавались д…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →