js第八(函数)

函数
(1)概念:封装了一段可以被重复执行调用的代码块;目的:让大量代码可以重复使用;
(2)函数使用
先声明函数再调用函数(函数名加小括号);
1,function声明函数的关键字全部小写;
2,函数是做某件事情,函数名一般是动词;
3,函数不调用自己不执行;
(3)函数的封装
把一个或多个功能通过函数的方式封装起来,对外只提供一个简单的函数接口;

(4)函数的参数:形参和实参;在声明函数的小括号里的是形参,在调用函数的小括号里的是实参;形参是接受实参的,形参类似于一个变量;函数的参数可以有,也可以没有,个数不限。目的:在函数内部某些值不能固定,可以通过参数在调用函数时传递不同的值过去。注意点:多个参数之间用逗号隔开;形参可以看做是不用声明的变量。
1,如果形参和实参个数一致,则正常输出结果;
2,如果实参个数多于形参个数,会取到形参个数;
3,如果实参个数小于形参个数,多余的形参定义为undefined 最终结果为NaN
模板:

function 函数名(形参1,形参2,){
        }
        函数名(实参1,实参2);

例子:用函数求任意两个数之间的和

 function getSum(start, end) {
            var sum = 0;
            for (var i = start; i <= end; i++) {
                sum += i;
            }
            console.log(sum);
        }
        getSum(1, 100);   

(5)return语句
1,函数只是实现某种功能,最终的结果需要返回给函数的调用者 函数名()通过return实现;
2,只要函数遇到return,就把后面的结果返回给函数的调用者 函数名()=return后面的结果;
3,函数都是有返回值的,有return则返回return后面的值,没有则返回undefined;
例子:求两个值的最大值

function getMax(a, b) {
            if (a > b) {
                return a;
            } else {
                return b;
            }
        }
        console.log(getMax(4, 9));
    **三元运算符形式**:`return a > b ? a : b;`
    在实际开发中,经常使用一个变量来接受函数的返回结果:
    `        var res=getMax(4,9);
    console.log(res);`

(6)break、continue、和return的区别:
break:结束当前的循环体(如for、while);
continue:跳出本次循环,继续执行下次循环(如for、while);
return:不仅可以退出循环,还能够返回return语句中的值,同时可以结束当前的函数体内的代码;
例子:打印计算的结果

function getRes(a, b) {
            return [a + b, a - b, a * b, a / b];
        }
        var res = getRes(1, 2);
        for (var i = 0; i < res.length; i++) {
            console.log(res[i]);
        }

例子:简单计算器

function jiSu() {
            var a = prompt("第一个数字");
            var b = prompt("请输入运算符");
            var c = prompt("第二个数字");
            switch (b) {
                case "+":
                    return parseFloat(a) + parseFloat(c);
                    break;
                case "-":
                    return a - c;
                    break;
                case "*":
                    return a * c;
                    break;
                case "/":
                    return a / c;
                    break;
            }
        }
        alert(jiSu());

(7)arguments的使用:当不确定有多少个参数传递时,可以用arguments获取,它是当前函数的一个内置对象,所有函数都内置了一个arguments对象,arguments对象中存储了传递的所有实参; arguments展示形式是一个伪数组,具有数组的length属性,按照索引的方式进行存储;只有函数才有该对象,而且每个函数都有该对象。
例子:求任意个数的最大值

function getMax() {
            var max = arguments[0];
            for (var i = 1; i < arguments.length; i++) {
                max = arguments[i];
            }
            return max;
        }
        console.log(getMax(1, 5, 3, 9));
        console.log(getMax(1, 5, 3, 55));
        console.log(getMax(1, 5, 3, 91));

例子2:翻转任意数组reverse

function reverse(arr) {
            var arr1 = [];
            for (var i = arr.length - 1; i >= 0; i--) {
                arr1[arr1.length] = arr[i];
            }
            return arr1;
        }
        var re = reverse([1, 2, 3, 4, 5, 6]);
        console.log(re);     

例子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 re = sort([1, 3, 6, 2, 5, 4]);
        console.log(re);

(8)函数的调用:函数之间是可以相互调用的
例子:判断是否是闰年

function backDay() {
            var year = prompt("请输入年份");
            if (isRunYear(year)) {
                alert('当前年份是闰年二月有29天');
            } else {
                alert('当前年份是平年二月有28天');
            }
        }
        backDay();
        function isRunYear(year) {
            var flag = false;
            if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
                flag = true;
            }
            return flag;
        }

(9)函数的声明方式
1,利用函数关键字自定义函数(命名函数)

function fn() {
}
fn();

2,函数表达式(匿名函数)
var 变量名=function(){} :没有函数名、函数表达式声明方式和声明变量差不多,只不过变量里面存的是值,而函数表达式里面存的是函数、函数表达式也可以传递参数;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值