week1.4函数上——每天一个JS小总结

week1.4函数上

 

函数

函数:一段有名字的代码块,完成特定功能的代码块,可以被重复调用。

//函数声明
function getMax(){
        console.log(1);
    }
​
//函数调用
    getMax()//调用一次
    getMax()//调用第二次

四个函数类型

自定义函数:由程序员根据业务需求自己定义的函数

1.   有名函数

2.   匿名函数自调用

3.   匿名函数赋值表达式

4.   有名函数赋值表达式

// 1,有名函数
    // 声明函数
    function fn1(){
        // 这里写入业务代码
        // 代码量无要求
        var result = 10>5?'yes':'no';
        console.log( result );
    }
    // 调用函数
    // 在函数名后面紧跟着的圆括号,就是调用函数的运算符
    fn1();
    console.log( fn1 );
    
// 2,匿名函数
(function(){
    // 这里写入业务代码
    // 代码量无要求
    var result = 10<5?'yes':'no';
    console.log( result );
})();
​
​
// 3,匿名函数赋值表达式
var fn2 = function(){
    alert(1);
};
fn2();
​
// 4,有名函数赋值表达式
var f1 = function f2(){
    console.log(f2);
    alert(2);
};
f1();// 2
// f2();// error
​

函数四要素

function fn1(n){
    console.log( n );
}
fn1(2)
fn1(3)

1.   函数名

函数名:上述案例fn1

2.   函数体

函数体:上述案例{}内容

3.   参数

参数:分形参和实参

形参:函数在定义时的参数,即n

实参:函数在调用时的参数,即2和3

形参和实参个数不同:

1.   形参大于实参个数的时候,没有被赋值的形参 undefined

2.   实参大于形参个数的时候,对程序没有任何影响

参数案例1

      // 需求:计算两个数字的和
        var n1 = 10;
        var n2 = 20;
        var n3 = 30;
        var n4 = 40;
        // 在函数定义时写入圆括号内部的参数,形参
        // 形式参数,没有具体的值,相当于声明了一个变量
        // var a = 5;
        // var b = 10;
        function getSum(a,b){
            console.log(a+b);
        }
        // 在函数调用时传入圆括号内部的值,实参
        // 实际参数,有具体的值
        getSum(5,10);   //15
        getSum(n1,n2);  //30
        getSum(n1,'hello');// "10hello"
        getSum(n1,n3);// "10hello"

参数案例2

  // var n1 = 10;
        // var n2 = 20;
        // var n3 = 30;
        // 40;
        function getSum(n1,n2,n3){
            console.log(n1,n2,n3);// 10,20,30
        }
        getSum(10,20,30,40);

 

4.   return返回值

return返回值:return配合判断结构体一起使用。

function fn1(n){
    if(n>2){
        console.log( n );
    }
    return 'right'
}
//fn1(2)    //right
fn1(3)// 3 right

返回值案例1

   // 在函数中,我们可以使用return关键字来将函数中的一个值或者一个计算的结果返回
    function getSum( n1,n2 ){
        // console.log( n1+n2 );
        var r = n1+n2;
        // return关键字后跟的是什么,那么函数的返回值就是什么
        return r;
    } 
    var result = getSum(10,20);
    console.log( result+5 );// 35
    
    // 
    function getSum2(n1,n2){
        var sum = 0;
        for( var i=n1;i<=n2;i++ ){
            sum+=i;
            if( sum>100 ){
                return sum;
            }
        }
    }
    var result2 = getSum2(1,50);
    console.log(result2);

return细节


        // 当函数中没有return关键字,其实函数依然有返回值
        function fn(){
            alert(1);
            // 当函数中没有ireturn 的时候,JS语言会为我们自动加上return
            // return undefined;
        }
        var result = fn();
        console.log( result );
​
        // 当函数中return后面没有跟任何数据的时候,函数依然有返回值
        function fn2(){
            alert(2);
            return;
            // return undefined;
        }
        var result = fn2();
        console.log( result );
        // 函数中如果没有return或者return后面没有数据,默认函数返回undefined

作业

		// 需求1:写一个函数,计算出圆的面积
		// 参数1:圆的半径
		// 返回值:圆的面积
		console.log( Math.PI*3 );
		console.log( Math.round(3.6) );


		// 需求2:写一个函数,计算出圆的周长
		// 参数1:圆的半径
		// 返回值:圆的周长

		// 需求3:写一个函数,接受三个数字作为参数
		// 返回值:三个数字中的最大数

		// 思考题:写一个函数:createTriangle( rows,num,type ),在页面中创建三角形
		// 	rows:行数
		// 	num:第一行的列数
		//  type:
		//  	"normal":正三角
		//  	"reverse":倒三角

答案

圆的面积----------------------------------------------------------------
console.log(Math.PI);//PI
console.log(Math.round(Math.PI));//四舍五入
function getArea(r){
	var s = 0;
	if(r>0){
		s = Math.PI * r * r;
		return s;
	}

}
var r = +prompt("请输入半径:");

var result = getArea(r );
console.log(Math.round(result));

圆的周长--------------------------------------------------------------
function getChang(R){
	var zhouChang = 0;
	if(R>0){
		zhouChang = 2* Math.PI*R;
		return zhouChang;
	}

}

var r = +prompt("请输入半径:");

var result = getChang(r);
console.log(Math.round(result));

返回三个数中最大的数-----------------------------------------------------

function getMax( ){
	if(n1>n2){
		if(n1>n3){
			return n1;
		}else {
			return n3;
		}
	}else{
		if (n2>n3) {
			return n2;
		}else{
			return n3;
		}
	}

}

var n1 = +prompt("请输入第一个数:");
var n2 = +prompt("请输入第二个数:");
var n3 = +prompt("请输入第三个数:");

var result = getMax(n1,n2,n3);
console.log(result);
思考题:写一个函数:createTriangle( rows,num,type ),在页面中创建三角形------------------
			rows:行数
			num:第一行的列数
		 type:
		 	"normal":正三角
		 	"reverse":倒三角

function createTriangle( num,rows,type){
	switch(type){
		case "normal":
			for(var i = 1; i <= rows; i++){
				for(var j = 1; j <= num; j++){
					document.write("*");
				}
				num++;
				document.write("<br>");
			}
			break;
		case "reverse":
		//外层控制行
			for(var i = 1; i <= rows; i++){
				for(var j = num; j >= 1; j--){
					document.write("*");
				}
				num--;
				if(num ===0){
					continue;
					document.write("*");
				}
				document.write("<br>");
			}
		
		
		break;
		default: document.write("wrong");

	}



}
var num = +prompt("请输入第一行有几个");
var rows = +prompt("请输入行数");
var type= prompt("请输入type:normal/reverse");
var result = createTriangle(num,rows,type);
console.log(result);

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值