Проверяет понимание различий между стрелочными функциями и function declaration в JavaScript, включая синтаксис и поведение.
В JavaScript стрелочные функции (arrow functions) и function declaration — это два разных способа создания функций, которые имеют принципиальные отличия в синтаксисе и поведении. Стрелочные функции всегда являются функциональными выражениями, а не объявлениями. Это означает, что их нельзя объявить с помощью ключевого слова function в начале строки, как это делается для function declaration.
Function declaration использует ключевое слово function и имя функции:
function myFunction() {
return 'Hello';
}Стрелочная функция записывается как выражение, обычно присваиваемое переменной:
const myArrowFunction = () => {
return 'Hello';
};this, они наследуют его из окружающего контекста. Function declaration имеют собственный this, который зависит от способа вызова.new для создания объектов, стрелочные функции — нет.// Function declaration — работает
console.log(sum(2, 3)); // 5
function sum(a, b) {
return a + b;
}
// Стрелочная функция — ошибка, если вызвать до объявления
// console.log(multiply(2, 3)); // ReferenceError
const multiply = (a, b) => a * b;Стрелочные функции нельзя объявить как function declaration из-за различий в синтаксисе и поведении. Используйте стрелочные функции для кратких колбэков или когда нужно сохранить контекст this, а function declaration — для именованных функций, которые должны быть доступны до объявления или использоваться как конструкторы.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию