JavaScript——函数的概念及应用(三)

一、函数的返回值

1、return语句之后的代码不被执行

//函数返回值注意事项
//1.return 终止函数
function getSum(num1,num2){
    
    
	return num1+num2;//return 后面的代码不会被执行
	alert('我是不会被执行的')
}
console.log(getSum(1,2))

2、return只能返回一个值,如果用逗号隔开多个值,以最后一个值为准

//return只能返回一个值
function ac(num1,num2){
    
    
return num1,num2;//返回的值以最后的值为准
}
console.log(ac(1,2)) //打印出来的值为2

3、return中如果需要返回多个值,可以通过存放到数组中的形式返回

//我们求任意两个数的 加减乘除结果
function getac(num1,num2){
    
    
	return [num1+num2,num1-num2,num1*num2,num1/num2];
}
var abc =getac(2,1);//返回的是一个数组
console.log(abc);

在这里插入图片描述
4、注意事项

  1. 我们的函数如果有return 则返回的是return后面的值,如果函数没有return则返回undefined
function fun1(){
    
    
	return 666;
}
console.log(fun1())//返回666

function fun2(){
    
    
}
console.log(fun2())//返回undefined

5、break,continue,return的区别

  • break:结束当前循环体(如for,while)
  • continue:跳出本次循环,继续执行下次循环(如for,while)
  • return:不仅可以退出循环,还能够返回return语句中的值,同时还可以结束当前函数体内的代码

二、函数中arguments的使用

当我们不确定有多少个参数传递的时候,可以用arguments来获取。在JavaScript中,arguments实际上它是当前函数的一个内置对象,所有函数都内置了一个arguments对象,arguments对象中存储了传递的所有实参。

//arguments的使用 只有函数才有arguments对象  而且是每个函数都内置好了这个arguments
function fn(){
    
    
	console.log(arguments);//里面存储了所有传递过来的实参
	//我们可以按照数组的方式遍历arguments
	for(var i = 0;i<arguments.length;i++){
    
    
			console.log(arguments[i])
    }
}
fn(1,2,3)

在这里插入图片描述
在这里插入图片描述

1、arguments展示形式是一个伪数组,因此可以遍历。伪数组具有以下特点:

  • 具有length属性
function fn(){
    
    
	console.log(arguments);
	console.log(arguments.length);
}
fn(1,2,3)

在这里插入图片描述

  • 按索引方式存数据
    在这里插入图片描述

  • 不具有数组的push,pop等方法

2、案例1:利用函数求任意个数的最大值

//利用函数求任意个数的最大值
function getmax(){
    
    
var max = arguments[0];
for(var i=1;i<arguments.length;i++){
    
    
if(arguments[i]>max){
    
    
 max = arguments[i];
  }
 }
 return max
}
console.log(getmax(1,2,3))
console.log(getmax(1,2,66,77))
console.log(getmax(1,2,3,66,77,88))

在这里插入图片描述
3、案例2:利用函数封装的方式,翻转任意一个数组

//利用函数翻转任意数组 reverse翻转
function reverse(arr){
    
    
	var newArr = [];
	for(var i=arr.length -1;i>=0; i--){
    
    
	newArr[newArr.length] = arr[i];
}
return newArr;
}
var arr1 = reverse([2,5,6,7,8]);
console.log(arr1);

在这里插入图片描述
4、案例3:利用函数封装方式,对数组排序——冒泡排序

//利用函数冒泡排序 sort 排序
function sort(arr){
    
    
	for(var i=0;i<arr.length-1;i++){
    
    
  	  for(var j=0;j<arr.length-i-1;j++){
    
    
			if(arr[j]>arr[j+1]){
    
    
        	var temp = arr[j];
        	arr[j] = arr[j+1];
        	arr[j+1] = temp;
        }
     }
  }
  return arr;
}
var arr1 = sort([5,3,7,9]);
console.log(arr1)

在这里插入图片描述
5、案例4:判断闰年
要求:输入一个年份,判断是否是闰年(闰年:能被4整除并且不能被100整数,或者能被400整除)

//利用函数判断闰年
function isrunyear(year){
    
    
	//如果是闰年我们返回true 否则返回false
	var flag = false;
		if(year % 4 == 0 && year % 100 !=0 || year % 400==0){
    
    
		flag = true;
		}
		return flag;
}
console.log(isrunyear(2000));

在这里插入图片描述

三、函数中一个函数可以调用另外一个函数

function at1(){
    
    
	console.log('这是第一次打印')
	at2();//2.第二步,在第一个函数中去调用第二个函数,此时就会打印出第二个函数中的值
}
at1();//调用第一个函数
//1.这个时候打印出来的只有第一个函数中的值,因为第二个函数中没有被调用
function at2(){
    
    
	console.log('这是第二次打印')
}

在这里插入图片描述
在这里插入图片描述
执行流程是:

  1. 首先执行的是function at1
  2. 发现函数at1被调用,就执行函数at1
  3. 按照从上到下的顺序执行,首先打印第一个内容
  4. 在执行调用at2函数

1.案例6:用户输入年份,输出当前年份2月份的天数

//用户输入年份,输出当前年份的2月份天数
function backday(){
    
    
	var year = prompt('请你输入年份:');
	if(isrunyear(year)){
    
    //调用函数需要加()
	alert('当前年份是闰年2月份有29天')
        }else{
    
    
	alert('当前年份是平年2月份有28天')
      }
}
backday();

//通过一个函数去调用另一个函数的来判断
function isrunyear(){
    
    
	//如果是闰年我们返回true 否则返回false
	var flag = false;
		if(year % 4 == 0 && year % 100 !=0 || year % 400==0){
    
    
		flag = true;
		}
		return flag;
}

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

四、函数的两种声明方式

1、利用函数关键字自定义函数

function fn(){
    
    
	}
fn();

2、函数表达式(匿名函数)

var 变量名 = function(){
    
    };
var fn = function(){
    
    
	console.log('我是一个函数表达式')
	}
 fn();
 //(1)fn是变量名 不是函数名
 //(2)函数表达式声明方式跟声明变量差不多,只不过变量里面存的是值 而 函数表达式里面存的是函数
 //(3)函数表达式也可以进行传递参数

猜你喜欢

转载自blog.csdn.net/weixin_45054614/article/details/107673008