js 箭头函数

时间与我擦肩而过
  • 25

js

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

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

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

c=(x)=>({x }); // ({x }) 有括号,整体被视为 一个表达式 ,内部 {x } 被视为一个对象字面量,等价于 { x:x }
  1. { x } <=> { x: x }
  2. () => { ... }{} 被解析成语句块,因此必须加 () 才是对象
你知道吗?

宣传栏