第8章函数基础

 

1.1 函数概述

1.1.1 什么是函数

          函数就是可以重复执行的代码块。

1.1.2 为什么要用函数

    因为一部分代码使用次数可能会很多,所以封装起来,需要的时候调用就可以了。

      案例:求和;(总是求和)

1.2 函数的定义

     关键字function

               function 函数名 ()  {  程序   }

1.3 参数

                    参与运算的变量。

                   为什么要设置参数?为了增强函数的功能性,和程序员的交互性,和函数的可拓展行。所以我们增加了参数这个概念。

1.3.1 形参

 

      形式上参与运算的变量,无实际值,为实参占位置,就像一`个躯壳一样。(可以理解为函数的内部变量外部无法访问)

1.3.2 实参

                         实际参与运算的变量。形参为他占位置,真实参与运算的变量。

1.4 返回值

             return函数就有值;没有return函数就没值;

          函数程序运行后的结果外部需要使用的时候,我们不能直接给与,需要通过return返回。

          总结:函数内部,return后面的值就是返回值;

          作用:函数执行后剩下结果就是返回值。

          函数执行完毕,会不会留下点儿什么,取决于有没有返回值

          var  temp   =    函数名()   =  (功能)+ 该函数的返回值;

1.4.1 注意

  1. 如果函数没有显示的使用 return语句 ,那么函数有默认的返回值:undefined

  2. 如果函数使用 return语句,那么跟再return后面的值,就成了函数的返回值

  3. 如果函数使用 return语句,但是return后面没有任何值,那么函数的返回值 也是:undefined

  4. 函数使用return语句后,这个函数会在执行完 return 语句之后停止并立即退 出,也就是说return后面的所有其他代码都不会再执行。

 

 

1.1 函数名、函数体和函数加载问题(重点记忆)

 

                         1、函数名是什么

 

        函数名 == 整个函数。

 

        function fn(){alert(1)};

 

        console.log(fn) == console.log(function fn(){alert(1)});

 

                           2、函数加载问题

 

                                   JS加载的时候,只加载函数名,不加载函数体。所以如果想使用内部的成员变量,需要调用函数。

                        

1.5 函数定义

                                          function   f(a,b){

                                            return  a+b;

                                      }

                                        console.log(f(5,6));

 

 1.5.2 函数表达式

     var  myFun=function (a,b){

                     return  a+b;

                 }

                 console.log(myFun(6,7));

 

1.1 变量和作用域(隐式全局变量和变量声明提升)

1.1.1 变量和作用域(函数中的变量需要函数执行后才能使用)

                           一、全局变量(成员变量)

                             哪里都可以访问到的变量。

              (进入script立即定义的变量和没有var的变量)

                         二、局部变量

                                   函数内部的变量,只有函数内部可以访问到。

                  (函数内部用var定义的变量和形参)

 

1.1.1 隐式全局变量

                    隐式全局变量就是隐藏的全局变量被发现

                           function fn(){

                                           var a = b = c =1; //  b和c就是隐式全局变量(等号)

                                      

 

                                     }

                    注意:

                       function fn(){

                           var a = b = c = 1;  //b和c就是隐式全局变量(等号)

                                     var a = 1; b = 2; c = 3; //b和c就是隐式全局变量(分号)

                              var  a = 1,b = 2, c = 3;   //  b和c不是隐式全局变量(逗号)

                            }

1.1.1 变量声明提升(出现原因:预解析)

                      函数中,定义变量在使用变量之后

                  值提升变量名,不提升变量值,容易出现undefined

                        function  fn(){                                

                                           // var aaa;

                                     console.log(aaa);   

                                         var   aaa=1;

                        }

 

                         //提前看一眼这个习惯叫什么呢?  预解析!
       //变量声明提升:在预解析的时候,成员变量和函数,被提升到最高位置,方便其他程序访问。
       //变量声明提升特点:成员变量只提升变量名,不提升变量值。但是,函数是所有内容全部提升。(function直接定义的)
                         //函数范围内照样会出现变量声明提升
                         //什么情况容易出现变量声明提升:使用变量在定义变量之前。

 

 

 

1.1 小知识

 

1.1.1 函数不调用不执行

 

1.1.2 函数名就等于(整个函数)

 

1.1.3 加载函数的时候,只加载函数名,不加载函数体

 

1.1.4 参数相当于局部变量

 

1.1.5 就近原则使用变量

 

1.1.6 两个平级的函数中的变量不会相互影响(可以使用同样的形参名)

 

 

 

1.1 匿名函数(了解)

    定义:匿名函数就是没有名字的函数。

    作用:

      1.不需要定义函数名的时候。(群众演员没必要起名,百万雄师下江南)

      2.书写起来更简便。

        匿名函数的调用有三种方法:

              

                                                       一、直接调用或自调用。(function(){alert(1)})()

                                           二、事件绑定。

            三、定时器。

1.1 函数是一种类型(了解)

1.2 函数作为参数(了解)

1.3 递归(理解)

                                                       递归:就是函数自己调用自己。(懂得)

                                                        必须有跳出条件。

 

 

 

转载于:https://www.cnblogs.com/BingBing-Deng/p/10315913.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值