Подтвердить что ты не робот

Почему моя функция стрелки не возвращает значение?

У меня есть функция стрелки, которая выглядит так (упрощенная):

const f = arg => { arg.toUpperCase(); };

Но когда я его назову, я получаю undefined:

console.log(f("testing")); // undefined

Почему?

Пример:

const f = arg => { arg.toUpperCase(); };
console.log(f("testing"));
4b9b3361

Ответ 1

Когда вы используете версию тела функции функции стрелки (с {}), подразумевается return. Вы должны указать его. Когда вы используете сжатое тело (no {}), результат выражения тела неявно возвращается функцией.

Итак, вы должны написать это либо с явным return:

const f = arg => { return arg.toUpperCase(); };
// Explicit return ^^^^^^

или с кратким телом:

const f = arg => arg.toUpperCase();

Примеры:

const f1 = arg => { return arg.toUpperCase(); };
console.log(f1("testing"));

const f2 = arg => arg.toUpperCase();
console.log(f2("testing"));