一、首先请看两段关于return的代码
function sum(...rest) {
var Num = 0;
for (var x of rest) {
Num += Number(x);
return(Num);
}
}
sum(1, 2, 3, 4, 5)
1
如果return语句在for循环内,返回结果为1(返回第一个元素,而不是全部元素的和)。
如果需要返回for循环后的结果,return语句需要在for循环外。
function sum(...rest) {
var Num = 0;
for (var x of rest) {
Num += Number(x);
}
return(Num);
}
sum(1, 2, 3, 4, 5)
15
二、return的第二个坑
自动插入分号(ASI)规则会影响return语句。在return关键字和被返回的表达式之间不允许使用行终止符。
return
a + b;
根据ASI,被转换为:
return;
a + b;
三、return语句定义
return语句定义为“return语句终止函数的执行,并返回一个指定的值给函数调用者。”
语法
return [[exoression]];
expression -- 被返回的表达式。如果忽略,则返回undefined。