ES6箭头函数后面加不加花括号{}问题

# 前言

本人在做项目的时候,使用到了every方法并使用箭头函数 (opens new window),我在箭头函数中加了花括号但是却无法返回正确的结果,经过查阅才知道,箭头函数后加花括号和不加是有区别的。

一、箭头函数后加花括号
如下所示,array是一个数组,用every方法看数组中的每一项是否满足所对应的条件,如果都满足的话,则会返回true,不满足返回false。根据every方法返回的结果再进行判断。我刚开始写的错误代码如下:

this.cartInfoList.every(item => {
 item.isChecked == 1
}) 
1
2
3

结果发现当array数组中的所有数字都是0的时候还是会返回1,其原因在于当箭头函数加上花括号的时候是需要加上return的。否则返回的就是就是空。因此加上花括号正确的代码如下:

this.cartInfoList.every(item => {
 return item.isChecked == 1
}) 
1
2
3

二、箭头函数不加花括号
此时是默认有return的,因此以上代码直接这样写:

this.cartInfoList.every(item => item.isChecked == 1)
1

总结
记住一句话就可以了:箭头函数加上花括号需要写return,不加花括号不需要写,默认就有return。