Встречается на собеседованиях • сегодня
В чем разница между стрелочной функцией и функциональным декларированием
Стрелочные функции (=>) и функциональное декларирование (function) имеют несколько ключевых отличий:
- Контекст (
this):- У обычной функции свой
this, который зависит от контекста вызова. - У стрелочной функции нет своего
this— она используетthisиз внешней области.
- У обычной функции свой
javascript
const obj = {
name: 'Test',
regularFunc: function() { console.log(this.name) }, // 'Test'
arrowFunc: () => console.log(this.name) // undefined (если не в strict mode)
};-
Аргументы (
arguments):- Обычная функция имеет доступ к
arguments. - Стрелочная — нет.
- Обычная функция имеет доступ к
-
Использование
new:- Обычную функцию можно вызвать с
new(как конструктор). - Стрелочную — нельзя.
- Обычную функцию можно вызвать с
-
Поднятие (hoisting):
- Обычные функции поднимаются (можно вызывать до объявления).
- Стрелочные — нет (должны быть объявлены до вызова).
javascript
foo(); // Работает
function foo() {}
bar(); // Ошибка
const bar = () => {};
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы