javascript - Why doesn't my arrow function return a value? -


i have arrow function looks (simplified):

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

but when call it, undefined:

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

why?

example:

const f = arg => { arg.touppercase(); };  console.log(f("testing"));


(note: meant clean, canonical dupetarget specific issue arrow functions above.)

when use function body version of arrow function (with {}), there no implied return. have specify it. when use concise body (no {}), result of body expression implicitly returned function.

so write either explicit return:

const f = arg => { return arg.touppercase(); }; // explicit return ^^^^^^ 

or concise body:

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

examples:

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


slightly tangential, speaking of {}: if want concise arrow's body expression object initializer, put in ():

const f = arg => ({prop: arg.touppercase()}); 

Comments

Popular posts from this blog

Is there a better way to structure post methods in Class Based Views -

reflection - How to access the object-members of an object declaration in kotlin -

php - Doctrine Query Builder Error on Join: [Syntax Error] line 0, col 87: Error: Expected Literal, got 'JOIN' -