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 -

performance - Why is XCHG reg, reg a 3 micro-op instruction on modern Intel architectures? -

jquery - Responsive Navbar with Sub Navbar -