箭头函数可不用return直接将表达式作为函数返回值

箭头函数如果函数体只有一个表达式,那么表达式将作为函数的返回值,这种写法无须加上return关键字,

看下面两个函数定义

var testAf = () => '111';
var testAfObj = () => ({name: 'lhr'});
console.log(testAf());//111
console.log(testAfObj().name);//lhr

testAfObj的函数体包裹圆括号是因为对象字面量的花括号与代码块混淆了,

包裹圆括号则将圆括号内部的语句强调声明为对象字面量而非代码块,

这与eval要给json字符串前后加上圆括号的道理是类似的

eval('(' + jsonStr + ')')

 

另外,注意testAf以下写法也是成立的

var testAf = () => ('111');

 

posted @ 2018-10-04 10:11  kungfupan  阅读(846)  评论(0编辑  收藏  举报