根据return的定义,可以明确,return只会出现在函数中,否则将会报语法错误。
函数中如果存在循环语句,在循环语句中可以使用return,此时会跳出循环返回结果而不执行后面的循环操作。需要注意的是,return跳出循环的机制与break不同,break只会跳出单层循环,而return不管几层循环都会直接跳出所有循环,终止执行循环。
return 后面可以是基础数据类型,也可以是引用类型或函数,返回函数的用法可以用来实现闭包。
return 后不跟任何数据,返回的是undefined。
在leetcode上刷题的时候踩的坑,题目是这样的
简单思考了一下,用最简单的双循环就可以解决问题,于是习惯性用forEach遍历了两次
结果发现函数返回值是undefined
百度了一下,发现是因为forEach多次执行回调函数,回调函数中使用return没法直接终止forEach,只能终止单次的回调。所以return语句在forEach内部是无法跳出循环的。
解决方案:
1.方案一:js针对数组操作的另外两个方法some()与every()
2.方案二:for/while语句老实循环
总结原因还是对forEach方法理解不够到位