一旦写了花括号,里面就必须有 return,否则返回值是 undefined 箭头函数: 写法 是否自动返回()=>表达式 ✅ 自动返回表达式结果()=>{语句}❌ 不自动返回,需要手写return()=>({...})✅ 返回对象(用括号包住对象字面量,避免和函数体花括号混淆) 只有箭头函数不写函数大括号{}的简写形式,=>后面的内容才会隐式 return; // 简写,无{},自动return()=>({count:0})// 简写,无{},自动return,括号只是分组()=>(1+2)// 简写,无{},自动return,不加括号也行()=>1+2 // ❌ 有{}函数体,不会自动return!必须写return()=>{return{count:0}}// A()=>{return{count:0}}// B()=>({count:0})// Cfunction(){return{count:0}}A 和 B:只是箭头函数两种语法写法,同一个函数 A、B 和 C:逻辑结果一样,执行后都返回`{count:0}`,放到 Pinia state 里使用没有区别 功能上完全等价,运行效果一模一样,只是语法写法不同。()=>{...}{}代表函数体代码块,代码块里想要返回值,必须手动写return()=>{return{count:0}}()=>({...})箭头函数简写返回: 箭头后面如果直接写{},JS 会认为是函数体,不是对象 包一层(),告诉 JS:括号里面是要返回的对象字面量,省略return()=>({count:0})function(){return...}普通函数,固定规则:函数体`{}`,靠return返回对象 箭头函数想直接返回对象,对象外面套小括号;小括号里面,就是返回的东西。()=>(1+2)等价于()=>{return1+2}//1. 数字表达式,加括号()=>(1+2)// 等价()=>{return1+2}//2. 数字表达式,不加括号(更常见)()=>1+2基础类型()=>100// 返回数字()=>'hello'// 返回字符串()=>true// 返回布尔()=>null()=>undefined 运算、三元表达式()=>10*5-2()=>10>5?'大':'小'()=>(10>5?'大':'小')// 三元比较长时,习惯包括号,可读性更好 返回数组(数组不需要外面包括号!)()=>[1,2,3]// 等价()=>{return[1,2,3]}返回对象(重点,必须())()=>({name:'张三'})// 等价()=>{return{name:'张三'}}调用函数 const fn=()=>666()=>fn()// 等价()=>{returnfn()}链式调用()=>arr.filter(x=>x>0).map(x=>x*2)vue3箭头函数注意点
RELATED READING
延伸阅读
更多一线实战笔记与深度复盘,助您持续精进