07-函数基础

一、认识函数

1.什么是函数?

函数:函数就是封装了一段可被重复调用执行的代码块,通过此代码块可以实现大量代码的重复使用。

函数的使用只需要2步:

(1)定义函数;

(2)调用函数;

2.函数的定义

函数在使用前,必须用function关键字来定义函数。

  • function声明函数的关键字,全部小写
  • 函数是做某件事情,函数名一般是动词
  • 函数不调用,自己不执行
  • 调用函数的时候不要忘记加小括号    sayHi();

3.函数的参数

在声明函数是,可以在函数名称后面的小括号中添加一些参数,这些参数被称为形参,而在调用该函数是,同样也需要传递相应的参数,这些参数被称为实参。

参数的作用:在函数内部某些值不能固定,我们可以通过参数在调用函数时传递不同的值进去。

函数形参实参匹配(在JavaScript中,如果形参不传值,默认是undefined)

1.如果实参的个数和形参的个数一致,则正常输出结果

2.如果实参的个数多余形参的个数,则会渠道形参的个数

3.如果实参的个数小于形参的个数,多余的形参定义为undefined,最终的结果是NaN

4.函数的返回值(return)

函数只是实现某种功能,最终的结果需要返回给函数的调用者,通过return来时间

只要函数遇到return,就把后面的结果 返回给函数的调用者,函数名()= return 后面返回的结果

终止函数,return 后面的代码将不会被执行,且只能返回一个值

函数如果有return,则返回return后面的值。如果函数没有return,则返回undefined

练习:求任意两个数的 加减乘除

function getResult(num1, num2) {

            return [num1 + num2, num1 * num2, num1 - num2, num1 / num2];

        }

        var re = getResult(21, 34);

        console.log(re);

通过数组的方式来返回多个值  return[ ,  ,  ]

5.arguments的使用

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

只有函数才有arguments函数,每个函数都是提前内置好了arguments

function fn(){

            console.log(arguments);//里面存储了所有传递过来的实参

            console.log(arguments.length);

        }

        fn(1,2,3)

        //伪数组,并不是真正意义上的数组;

        //1.具有数组的length属性

        //2.按照索引的方式进行存储

        //3.他没有真正数组的一些方法push()、pop()等。

练习:求任意个数的最大值

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,3,1,234,45,75));

练习:利用函数判断是否为闰年

//利用函数判断是否是闰年

        function isRunYear(year) {

            var flag = false;

            if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {

                flag = true;

            } else flag = false;

            return flag;

        }

        console.log(isRunYear(2001));

6.函数的声明方式

1.利用函数关键字自定义函数(命名函数)

function  fn(){     }

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

var fun=function(){

}

注意:这里的fun是变量名,不是函数名

二、预解析

1.Js引擎运行Js分为两步:预解析、 代码执行

(1).预解析,js引擎会把js里面所有的var 还有function提升到当前作用域的最前面

(2).代码执行,按照代码书写顺序从上往下执行

2.预解析分为 变量预解析(变量提升)和 函数预解析(函数提升)

(1)变量提升,就是把所有的变量声明提升到当前作用域的最前面,不提示赋值操作

(2)函数提升,把所有的函数声明提升到当前作用域的最前面,不调用函数,函数表达式调用必须写在函数声明的后面。

         f1();

        console.log(c);

        console.log(b);

        console.log(a);

        //输出9 9 9 9 9 (最后一个报错)

        function f1(){

            var a=b=c=9;

            //相当于 var a=9;b=9;c=9;b和c直接赋值,没有var声明,当全局变量看

            console.log(a);

            console.log(b);

            console.log(c);

        }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值