js 箭头函数

时间与我擦肩而过
  • 28

js

a=(x)=>x ;
b=(x)=>{x };
c=(x)=>({x });
console.log(a(1),b(1),c(1)) // 1 undefined {x: 1}

第三行 什么意思 不懂 为什么输出是个对象

回复
阅读 506
2 个回答
b=(x)=>{x }; // x 是个普通的表达式 x,{x} 视为一个函数体,没有明确指定函数返回值,所以 b(1) 是undefined

c=(x)=>({x }); // ({x }) 有括号,整体被视为 一个表达式 ,内部 {x } 被视为一个对象字面量,等价于 { x:x }
  1. { x } <=> { x: x }
  2. () => { ... }{} 被解析成语句块,因此必须加 () 才是对象
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏