函数返回值 return
当函数执行完的时候,并不是所有的时候都要打印结果,我们希望函数给我们反馈(返回结果,然后再进行继续运算),函数可以通过返回值return来得到一个值。完整的函数有参数和返回值
function 函数名(形参1,形参2,形参3,......){
函数体;
return 值;
}
// 函数返回值会返回到调用处,可以通过变量来接收这个返回值
var 变量 = 函数名(实参1,实参2,实参3......);
需求:封装一个求和函数
function getSum(x,y){
var sum = x + y;
return sum; //返回值
}
// 定义一个变量来接收
var result = getSum(100 ,200);
console.log(result); //打印输出
console.log(result * 20); //可以继续运算
优化版
function getSum(x,y){
return x+y; //直接返回函数体
}
var result = getSum(100,200);
console.log(result);
注:一个完整函数,必有参数和返回值。如果一个函数有返回值,那么这个函数就必须有一个return关键字并且return后面跟内容且在调用时要定义变量来接收
测试题
出现undefined的情况有几种 3种
1.变量声明了没有赋值
2.函数没有返回值,但是在调用的时候接收了,那么函数默认 的返回值就是undefined
function fun1(x,y){
var sum = x + y;
}
var result1 = fun1(10,20);
console.log(result1); //undefined
3.函数有返回值return,但是后面没有跟内容
function fun1(x,y){
var sum = x + y;
return;
}
var result1 = fun1(10,20);
console.log(result1); //undefined
需求:求1-100的和
1.0
function getEverySum(){
var sum = 0;
for(var i = 1; i <= 100; i++){
sum += i;
}
return sum;
}
var result1 = getEverySum();
console.log("1-100的和为" + result1);
2.0
function getEverySum(x,y){
var sum = 0;
for(var i = x; i <= y; i++){
sum += i;
}
return sum;
}
var result1 = getEverySum(1,100);
console.log("1-100的和为" + result1);
需求:求1-100的偶数和
function getEvenSum(){
var sum = 0;
for(var i = 1; i <= 100; i++){
if(i % 2 == 0){
sum += i;
}
}
return sum;
}
var result2 = getEvenSum();
console.log("1-100的偶数和为" + result2);
需求:求1-100的奇数和
function getOddSum(x,y){
var sum = 0;
for(var i = x; i <= y; i++){
if(i % 2 != 0){
sum += i;
}
}
return sum;
}
var result3 = getOddSum(1,100);
console.log("1-100的奇数和为" + result3);
需求:求圆的面积
function getS(r){
return Math.PI * r * r;
}
var result4 = getS(5);
console.log(result4); //25π
注:Math.PI为系统自带的数学对象
需求:求一个数字的阶乘 !
function jieCheng(num){
var sum = 1; //存放累乘和
for(var i = 1; i <= num ; i++){ //从1开始
sum *= i;
}
var result5 = jieCheng(6);
}
console.log(result5); //720
注:return后面的代码都不会执行,执行到return函数直接结束
练习:
需求:用函数封装数组反转
function reverseArray(arr){
for(var i = 0; i < arr.length/2; i++){
var temp = arr[i];
arr[i] = arr[arr.length-1-i];
arr[arr.length-1-i] = temp;
}
return arr;
}
var result1 = reverseArray([10,20,30,40,50]);
console.log(result1); //50 40 30 20 10
需求:用函数封装数组冒泡排序
function sortArray(arr){
for(var i = 0; i < arr.length-1; i++){
for(var j = 0; j < arr.length-1-i; j++){
if(arr[j] > arr[j + 1]){
var temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
return arr;
}
var result2 = sortArray([50 40 30 20 10]);
console.log(result2); //10,20,30,40,50