随手一记
var func1 = x => x;
var func2 = x =>{x};
var func3 = x => ({x});
console.log(func1(1)); //1
console.log(func2(1)); //undefined
console.log(func3(1)); //{x:1}
面试原题,一直不清楚为什么第二个是undefined
结论:当函数体只有一句表达式时,那么可以省略花括号与return;但是!如果使用了花括号,就必须写return。
原题目中第二个就是使用了花括号,但是没有return。
正确写法:
var func2 = x =>{return x};
console.log(func2(1)); //1
或者去掉花括号,即原题中的第一个写法。