20.函数定义 、arguments实参列表及注意事项、模拟重载、return的两个作用:1.返回函数值 2.做终止语句、 console语句中多次调用函数,打印出的值是return值取和

函数的用处:来实现高内聚低耦合,把共同需要的代码高度封装起来,以此减少重复代码,封装的函数只有调用才会执行。

 函数名的命名规则与变量的命名规则一样,js中唯一能封闭作用域的就是函数

一:函数的声明和调用:

声明格式:

 调用格式:函数名()

 函数可调用多次:

 实际运用都是在特定条件下调用函数来实现功能需求:

二:函数的强大之处:没给参数仅是减少代码耦合,要封装特定功能在代码块中,需要变量作为参数。

格式:【function 函数名(m),        m是变量名不用var声明,括号内的变量默认用var声明,

参数:

        1.写变量名没赋值的用来占位的叫:形式参数

        2.调用时 函数名(变量值),给定确切变量值来赋值给形式参数的变量值,叫实参

        3.实参比形参个数少,叫不定参

           实参比形参个数多,不报错,没意义。

  注意:形参没写默认值,默认值为undefined

eg①:一个参数:

默认值为undefined

eg2:多个参数: 用逗号隔开

eg3:不定参:传递的实参与形式参数不等,那么传递的实参叫不定参。

 二:

arguments:实参列表,接受一切实参,是类数组

使用方法:

 arguments实参列表,下标从0开始计数

 打印arguments,会打印出Argument对象,Argument类数组,下标:对应值

arguments的注意事项:

             传不定参时,实参个数<形参个数,m(1) m(x,y)在函数内部给y赋值,arguments[1]仍为undefined;

                                   实参个数==形参个数 m(1,2)   m(x,y) 在函数内部改变y值,arguments[1]也跟着改变,

                                   arguments获取的是实参,是实参列表,若形参接受到了实参,并在函数内部对传进的实参值做出改变,那arguments里对应的实参值也会发生改变

                                   arguments.length代表实参列表长度

eg:

三:js中的函数与其他语言函数不同,会覆盖不会重载(根据形参不同,执行不同函数),可以模拟重载需要arguments实参列表

js 与 其他编程语言不同:

若是其它语言,上面两个函数名相同,参数不同的函数是不同的函数,在js中,只要函数名一样就是一样的函数,且后面的函数会覆盖前面的。

arguments获取的是实参,是实参列表,若形参接受到了实参,并在函数内部对传进的实参值做出改变,那arguments里对应的实参值也会发生改变

     函数的模拟重载:根据实参列表长度来实现模拟重载。

1.

 

 

2.借助arguments.length与下标取值arguments[n]来实现函数重载

 四:程序需要函数的结果,不仅仅是console.log()打印在控制台上,还需要函数结果进行下一步的运算。需要有个结果来代表函数,因此有return 函数的返回值这个概念。

函数吃进去的是实参,吐出的是return,变量=函数(),变量接受的是函数的return值

①:每个函数都有默认的返回值,默认的返回值是undefined 

  程序中用变量来接收return值进行下一步运算                                                    

 var  a = fn(); console.log(a) //undefined;console.log(a)//22

 

 return 后面可接表达式,表达式里可用自定义变量以及参数,函数强大的体现:

 ②:return 做终止语句使用

 

一个函数通常只有一个return语句,含分支语句除外:

 

 

 console语句中多次调用函数,打印出的值是return值取和:

 

补充:形参的长度

     函数名.length即为形参的个数

 开发必用:函数之间的相互调用:高层API 调用 低层API,借助返回值。

                                            

 

 

 

原文地址:https://www.cnblogs.com/yzdwd/p/12508870.html