Ответ
Что хотят услышать интервьюеры
Интервьюеры ожидают, что кандидат продемонстрирует четкое понимание различий между var, const и let в JavaScript, включая область видимости, возможность изменения значений и особенности инициализации. Также важно упомянуть о современных подходах к использованию этих ключевых слов, что указывает на актуальные знания кандидата.
Различия между var, const и let
Область видимости:
var: имеет функциональную область видимости, что означает, что переменные, объявленные с помощьюvar, доступны в функции, в которой они были объявлены, или глобально, если объявлены вне функции.letиconst: имеют блочную область видимости, что означает, что они доступны только внутри блока кода (например, внутри фигурных скобок{}).
Инициализация и изменение значений:
var: может быть объявлен без инициализации и может быть изменён в дальнейшем.let: также может быть объявлен без инициализации и позволяет изменять значения.const: должен быть инициализирован при объявлении и не может быть изменён после этого (однако, если он ссылается на объект, свойства этого объекта могут изменяться).
Подъем (Hoisting):
var: переменные поднимаются, и их можно использовать до фактического объявления (значение будетundefined).letиconst: также поднимаются, но нельзя использовать их до объявления, это вызовет ошибку.
Примеры
// Пример использования var
function exampleVar() {
console.log(x); // undefined
var x = 10;
console.log(x); // 10
}
// Пример использования let
function exampleLet() {
// console.log(y); // Ошибка: Cannot access 'y' before initialization
let y = 20;
console.log(y); // 20
}
// Пример использования const
function exampleConst() {
const z = 30;
// z = 40; // Ошибка: Assignment to constant variable.
console.log(z); // 30
}
// Тестируем примеры
exampleVar();
exampleLet();
exampleConst();Что могут спросить дальше
- Объяснить, как hoisting влияет на использование переменных.
- Привести примеры использования const и let в реальных проектах.
- Показать различные последствия использования var в циклах.
- Обсудить best practices для выбора между let и const.