Вопросы собес Front
January 6, 2025

Различия const и let

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

1. Переопределение

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

let x = 10;

x = 20; // Это допустимо

console.log(x); // 20

const: Переменные, объявленные с помощью const, не могут быть переопределены. Если вы попытаетесь изменить значение переменной, объявленной с const, вы получите ошибку.

const y = 30;

y = 40; // Ошибка: TypeError: Assignment to constant variable.

2. Инициализация

let: Переменные, объявленные с let, могут быть инициализированы позже, чем они были объявлены.

let a;

a = 50; // Это допустимо

console.log(a); // 50

const: Переменные, объявленные с const, должны быть инициализированы при объявлении. Вы не можете объявить переменную с const без начального значения.

const b; // Ошибка: Missing initializer in const declaration

const b = 60; // Это допустимо

3. Изменяемость объектов

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

const: Хотя переменные, объявленные с const, не могут быть переопределены, но если они указывают на объект или массив, вы можете изменять свойства этого объекта или элементы массива.

const obj = { name: "Alice" };

obj.name = "Bob"; // Это допустимо

console.log(obj.name); // "Bob"

// obj = {}; // Ошибка: Assignment to constant variable.

Область видимости

Оба let и const имеют блочную область видимости, что означает, что они доступны только внутри блока кода, в котором были объявлены.

Заключение

• Используйте let, когда вам нужно изменить значение переменной.

• Используйте const, когда вы хотите гарантировать, что переменная не будет переопределена. Это особенно полезно для объектов и массивов, чтобы избежать случайного изменения ссылки на них.