JavaScript函数及应用案例操作

发布于:2022-08-09 ⋅ 阅读:(293) ⋅ 点赞:(0)

书接上文,下面对JavaScript函数及应用进行补充。

四 :arguments 地理解和使用

        arguments 的使用:只有在数组里面才有argumengts 对象,而且是每个函数都内置好了arguments ,我们只需要直接使用就可以,不需要再进行声明。

        arguments 里面存储的是所有的实参 ,而且arguments调用里面的元素和数组的调用方式是相同的。

            function f1(){
				console.log(arguments);
				console.log(arguments.length)
				console.log(arguments[2]);
				
				// 我们可以按照数组的方式遍历 arguments
				for(var i=0;i<arguments.length;i++){
					console.log(arguments[i])
				}
				
			}
			f1(1,2,3);

arguments它所实现的是一个伪数组,并不是真正意义上的数组,它具有数组的一些特点:

1)它具有数组的length属性。

2)他可以按照索引的方式进行存储。

3)但是他没有真正数组的一些方法 ,比如pop()   push()   等等

arguments  的使用案例:

        利用函数求任意个数的最大值

            function numMax(){
				var max=arguments[0];
				for (var i=1;i<arguments.length;i++){
					if(arguments[i]>max){
						max=arguments[i];
					}
				}	
				return max;
			}
			console.log(numMax(1,2,44,45,6,7,54,65,87));

         这个函数只需要对numMax里面要求进行比较的数值进行修改,就可以根据自己的需求输入想要进行比较的数值,最后代码运行输出的都是数值中的最大值。

函数的总结性案例:

1.利用函数封装的方式,翻转任意一个数组   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([1,4,6,8,23,56]);
			console.log(arr1);
			var arr2=reverse(['关羽','张飞','马超','赵云','黄忠','刘备','诸葛亮','姜维','pink']);
			console.log(arr2);

2.案例二:利用函数封装的方式,实现冒泡排序(默认情况下实现的是升序排序)   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([1,6,8,56,97,34]);
			console.log(arr1);

 利用函数封装的方式,实现冒泡排序(降序排序)   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([1,6,8,56,97,34]);
			console.log(arr1);	

 案例三:利用函数实现用户输入一个年份,判断其是不是闰年

            function runYear(year){
				var flag=false;
				if( year % 4 ==0 &&year % 400 !=0 ||  year % 400 ==0){
					flag=true;
				}
				return flag;
			}
			console.log(runYear(2000));
			console.log(runYear(1998));

 案例四:函数之间是可以相互调用的

            function fn1(){
				console.log(111);
				fn2();
				console.log('fn1')
			}
			function fn2(){
				console.log(222);
				console.log('fn2')
			}
			fn1();

  该函数的执行顺序为:
            首先声明了两个函数,但是前面都没有对函数进行调用,直到最后fn1();对fn1函数进行了调用,然后执行里面的代码块,首先输出111 ,然后调用了fn2函数,那么就先执行fn2的代码块,直接顺序执行打印输出里面的222 和 下面的 'fn2'  ,然后回头执行fn1当中剩下的代码,打印输出'fn1'  所以该程序最终的输出结果为 111  222  'fn2'  'fn1'。

案例五:用户输入年份,输出当前年份2月份的天数(这里可以进行函数的嵌套使用)

            function backDay(){
				var year= prompt('请用户输入年份:')
				if(runYear(year)){
					alert('当前年份是闰年,2月份有29天')
				}else{
					alert('当前年份是平年,2月份有28天')
				}	
			}
			backDay();
			// 判断是否为闰年的行数
			function runYear(year){
				var flag=false;
				if( year % 4 ==0 &&year % 400 !=0 ||  year % 400 ==0){
					flag=true;
				}
				return flag;
			}

案例六:写入一个函数,用户输入任意任意两个数字的任意算数运算(简单的计算器的小功能),并能弹出运算后的结果。

            function getSum(num1, num2) {
				var num1 = prompt('请用户输入第一个数:') * 1
				var fuhao = prompt('请用户输入算术运算符:')
				var num2 = prompt('请用户输入第二个数:') * 1
				switch (fuhao) {
					case '+':
						return num1 + num2;
						break;
					case '-':
						return num1 - num2;
						break;
					case '*':
						return num1 * num2;
						break;
					case '/':
						return num1 / num2;
						break;
					default:
						alert('您输入的运算符有误')
				}
			}
			alert('运算的结果为'+getSum());

案例七:写一个函数,用户输入任意两个数字,最终输出用户输入的最大值。

        function getMax(num1,num2){
			var num1=prompt('请用户输入第一个数字:')*1;
			var num2=prompt('请用户输入第二个数字:')*1;
			// if(num1>num2){
			// 	return num1;
			// }else{
			// 	return num2
			// }
			
			return num1 > num2 ?  num1 :num2
		}
		alert('用户输入的最大值为'+getMax());

案例八:写一个函数,用户输入任意三个不同的数字,最终输出用户输入的最大值

            function getMax1(num1,num2,num3){
				var num1=prompt('请用户输入第一个数字:')*1;
				var num2=prompt('请用户输入第二个数字:')*1;
				var num3=prompt('请用户输入第二个数字:')*1;
				var max = 0;
				// if(max>num2  &&  max>num3){
				// 	return max;
				// }else if(num2>max &&num2>num3){
				// 	return num2;
				// }else {
				// 	return num3;
				// }
				max = num1>num2 ? num1 : num2;
				return max>num3 ? max : num3;
			}
			alert('用户输入的最大值为:'+'\n'+getMax1());

案例九:写一个函数,用户输入一个数判断是否是素数,并弹出警示框告知用户答案(素数又称为质数,只能被1和自身整除的数字)

            function getNum(num){
				var num=prompt('请用户输入一个数字:')*1;
				for (var i=2 ;i<=num ;i++){
					if(num % i ==0){
						return '不是素数'
					}else{
						return '素数'
					}
				}
			}	
			alert('你输入的数字:'+'\n'+getNum());

案例十:输出100以内的素数,素数是只能被1和自身整除的数

            for (var i = 0; i <= 100; i++) {
				for (var j = 2; j <= i; j++) {
					if (i % j == 0) {
						break;
					}
				}
				if (i == j) {
					console.log(i)
				}
			}

本文含有隐藏内容,请 开通VIP 后查看

网站公告


今日签到

点亮在社区的每一天
去签到