目标

  • 能够讲出为何需要函数
  • 能够根据语法书写函数
  • 能够根据需求封装函数
  • 能够讲出形参和实参 的传递过程
  • 能够使用函数的返回值
  • 能够使用arguments 获取函数的参数

1. 函数的概念与使用

函数:就是封装了一段可被重复调用执行的代码块。通过此代码块可以实现大量代码的重复使用。
函数再使用时分为两步: 声明函数和调用函数.

1.1 函数的声明与调用

和变量命名基本一致
Ø尽量小驼峰式命名法
Ø前缀应该为动词
Ø命名建议:常用动词约定

动词 含义
can 判断是否可执行某个动作
has 判断是否含义某个值
is 判断是否为某个值
get 获取某个值
set 设置某个值
load 加载某些数据

1.2 封装

函数的封装是把一个或者多个功能通过函数的方式封装起来,对外只提供一个简单的函数接口


2.函数的参数

2.1形参和实参

在声明函数时, 小括号中添加的参数称为形参,而在调用该函数时,传递小括号中的的参数称为实参

  1. // 带参数的函数声明
  2. function 函数名(形参1, 形参2 ,形参n /*可以定义任意多的参数,用逗号分隔*/) {
  3. // 函数体
  4. }
  5. // 函数调用
  6. 函数名(实参1, 实参2, 实参n);
  7. //如果实参与形参'变量'不对等,实参多于形参,多余的部分不生效,实参少于形参,多余的形参为空值
参数 说明
形参 被函数定义的’变量’, 如果没有实参传递参数, 形参内容则为 空值
实参 实际调用时, 传递给函数的参数

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


小结

  • l 函数可以带参数也可以不带参数
  • l 声明函数的时候,函数名括号里面的是形参,形参的默认值为 undefined
  • l 调用函数的时候,函数名括号里面的是实参
  • l 多个参数中间用逗号分隔
  • l 形参的个数可以和实参个数不匹配,但是结果不可预计,我们尽量要匹配

3. 函数的返回值

3.1 Return 语句

  • 在使用 return 语句时,函数会停止执行,并返回指定的值
  • 如果函数没有 return ,返回的值是 undefined

    1. // 声明函数
    2. function 函数名 (){
    3. ...
    4. return 需要返回的值; //return相当于输出,具有中断属性;
    5. }
    6. // 调用函数
    7. 函数名(); // 此时调用函数就可以得到return返回的值

    3.2 Break, Continue, Return三者区别

  • break :结束当前的循环体(如 for、while)

  • continue :跳出本次循环,继续执行下次循环(如 for、while)
  • return :不仅可以退出循环,还能够返回 return 语句中的值,同时还可以结束当前的函数体内的代码

4. arguments的使用

arguments是js中自带的内置对象. 它可以接受被函数传递的所有参数.
arguments展示形式是一个伪数组,因此可以进行遍历。伪数组具有以下特点:

  • 具有 length 属性
  • 按索引方式储存数据
  • 不具有数组的 push , pop 等方法

5. 函数可以调用另一个函数

每个函数块都是独立的代码块,可以存在相互调用的情况
image.png


6. 函数的两种声明方式

1. 自定义函数方式(命名函数)

  1. // 声明定义方式
  2. function fn() {...}
  3. // 调用
  4. fn();

因为有名字,所以也被称为命名函数

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

  1. // 这是函数表达式写法,匿名函数后面跟分号结束
  2. var fn = function(){
  3. ...
  4. };
  5. // 调用的方式,函数调用必须写到函数体下面
  6. fn();
  • 因为函数没有名字,所以也被称为匿名函数
  • 函数调用的代码必须写到函数体后面