2.4.1 return 语句
只要函数遇到return,就把return后面的结果 返回给函数的调用者,函数名() = return后面的结果。
返回值:函数调用整体代表的数据;函数执行完成后可以通过return语句将指定数据返回 。
只要函数遇到return,就把return后面的结果 返回给函数的调用者,函数名() = return后面的结果。
// 声明函数
function 函数名(){
...
return 需要返回的值;
}
// 调用函数
函数名(); // 此时,调用函数就可以得到函数体内 **return 后面的值**
// demo:利用函数,求两个数的最大值
function getMax(num1, num2) {
// if (num1 > num2) {
// return num1;
// } else {
// return num2;
// }
return num1 > num2 ? num1 : num2;
}
console.log(getMax(1, 3));
console.log(getMax(11, 3));
// demo:利用函数求数组 [5,2,99,101,67,77] 中的最大数值。
function getArrMax(arr) { // arr 接受一个数组 arr = [5,2,99,101,67,77]
var max = arr[0];
for (var i = 1; i <= arr.length; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
return max;
}
// getArrMax([5, 2, 99, 101, 67, 77]); // 实参是一个数组送过去
// 在我们实际开发里面,我们经常用一个变量来接受 函数的返回结果 使用更简单
// var re = getArrMax([5, 2, 99, 101, 67, 77]);
var re = getArrMax([3, 77, 44, 99, 143]);
console.log(re);
另一种写法
function getMax(arr) {
var temp;
for (var i = 0; i < arr.length; i++) {
if (arr[i] > arr[i + 1]) {
temp = arr[i];
}
}
return temp;
}
console.log(getMax([5, 2, 99, 101, 67, 77]));
2.4.2 return 终止函数
return 语句之后的代码不被执行。
function add(num1, num2) { //函数体
return num1 + num2; // 注意:return 后的代码不执行
alert('我不会被执行,因为前面有 return');
}
var resNum = add(21, 6); // 调用函数,传入两个实参,并通过 resNum 接收函数返回值
alert(resNum); // 27
2.4.3 return 只能返回一个值
return 只能返回一个值。 如果用逗号隔开多个值, 以最后一个为准。
return 只能返回一个值。 如果用逗号隔开多个值, 以最后一个为准。
function add(num1, num2) {
//函数体
return num1, num2;
}
var resNum = add(21, 6); // 调用函数,传入两个实参,并通过 resNum 接收函数返回值
alert(resNum); // 6
2.4.4 函数没有 return 返回 undefined
函数都是有返回值的
1、如果有return ,则返回 return 后面的值
2、如果没有return, 则返回 undefined
2.4.5 break 、continue 、return 的区别
- break :结束当前的循环体(如 for、while)
- continue :跳出本次循环,继续执行下次循环(如 for、while)
- return :不仅可以退出循环,还能够返回 return 语句中的值,同时还可以结束当前的函数体内的代码 【return可以用于循环、函数。】
// 函数返回值注意事项
// 1. return 终止函数
function getSum(num1, num2) {
return num1 + num2; // return 后面的代码不会被执行
alert('我是不会被执行的哦!')
}
console.log(getSum(1, 2));
// 2. return 只能返回一个值
function fn(num1, num2) {
return num1, num2; // 返回的结果是最后一个值
}
console.log(fn(1, 2));
// 3. 我们求任意两个数的 加减乘数结果
function getResult(num1, num2) {
return [num1 + num2, num1 - num2, num1 * num2, num1 / num2];
}
var re = getResult(1, 2); // 返回的是一个数组
console.log(re);
// 4. 我们的函数如果有return 则返回的是 return 后面的值,如果函数么有 return 则返回undefined
function fun1() {
return 666;
}
console.log(fun1()); // 返回 666
function fun2() {
}
console.log(fun2()); // 函数返回的结果是 undefined
// 补充:经测试,return只能用于函数中嵌套循环语句的代码,不能单独用于没有函数包裹的循环语句中,否则报错
function fn() {
for(let i=0;i<6;i++) {
if(i == 3) {
return;
// break
}
console.log(i) // 0 1 2
}
}
fn()