Проверяет понимание области видимости имени именованного функционального выражения (NFE) в JavaScript и умение отличать его от обычного объявления функции.
Именованное функциональное выражение (NFE) — это функция, у которой есть собственное имя, но она используется как выражение, например, присваивается переменной. Ключевая особенность: это имя существует только внутри области видимости самой функции и не попадает во внешнюю область.
Когда движок JavaScript встречает именованное функциональное выражение, он создаёт специальную промежуточную область видимости, в которой имя функции доступно только для чтения. Снаружи это имя не существует.
const factorial = function fact(n) {
// имя fact доступно здесь
return n <= 1 ? 1 : n * fact(n - 1);
};
console.log(factorial(5)); // 120
console.log(typeof fact); // "undefined" — снаружи имени нет
Имя NFE нельзя переприсвоить внутри функции — оно доступно только для чтения. В старых движках (например, IE8) имя могло утекать во внешнюю область, но в современном стандарте ES2015+ поведение строго определено: имя видно только внутри.
Итог: именованное функциональное выражение стоит применять, когда нужна рекурсия или понятные имена в стеке вызовов, но при этом не хочется создавать лишнюю переменную во внешней области видимости.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию