Спросят с вероятностью 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
🧩 Идущий | 🔐 Собесы | 🔐 Тестовые