05-JS中的函数

6/29/2022

# 1 - 函数

# 1.1 函数的概念

在 JS 里面,可能会定义非常多的相同代码或者功能相似的代码,这些代码可能需要大量重复使用。虽然 for循环语句也能实现一些简单的重复操作,但是比较具有局限性,此时我们就可以使用 JS 中的函数。

  • 函数:函数其实就是某段代码的封装,这段代码帮助我们完成某一个功能
  • 默认情况下JavaScript引擎或者浏览器会给我们提供一些已经实现好的函数
  • 我们也可以编写属于自己的函数
  • 在开发程序时,使用函数可以提高编写的效率以及代码的重用

目前, 我们已经接触过几个函数了

  • alert函数
  • prompt函数
  • console.log函数
  • String/Number/Boolean函数

# 1.2 函数的创建方式

函数的使用包含两个步骤:

  • 声明函数 —— 封装 独立的功能
  • 调用函数 —— 享受 封装 的成果

# 声明函数

  • 声明函数的过程是对某些功能的封装过程
  • 开发中,我们会根据自己的需求定义很多自己的函数
  • 声明函数使用function关键字:这种写法称之为函数的定义
    // 1.最常用的  使用function声明
    function fn(){

    }
    // 这里是声明+定义  声明就是起名字 定义就是定义内容


    // 2.通过赋值实现  =后面是一个匿名函数
    var gn = function(){

    }
1
2
3
4
5
6
7
8
9
10
11

注意细节:

  • 函数名的命名规则和前面变量名的命名规则是相同的
  • 函数定义完后里面的代码是不会执行的,函数必须调用才会执行
  • 函数要尽量做到见名知意
  • 由于函数一般是为了实现某个功能才定义的, 所以通常我们将函数名命名为动词,比如 getSum

# 调用函数

  • 调用函数是让已存在的函数为我们所用
  • 可以是自己写的函数,也可以是系统中内置的,也可以是第三方的
  • 调用的时候千万不要忘记添加小括号
// 调用函数
// 调用函数通过函数名()即可
函数名();  // 通过调用函数名来执行函数体代码
function work(){
    console.log('工作');
}
work()
1
2
3
4
5
6
7

# 1.3 局部变量和全局变量

  • 局部变量就是只能在一定范围内使用
  • 全局变量就是在全局哪里都可以使用
  • 一般情况下 你在script标签下面用var let const声明的 都是全局的
  • 在函数中用var let const声明的 一般是局部的
  • 不论在哪里 直接 a=1 直接定义的这种 就是全局的
function fn(){
        var b=2;//b是一个局部变量
        c=3;//这是一个全局变量
        var a=4;//这里的a是局部
        console.log(a);
    }
    fn()
    console.log(a);
    console.log(c);
    // 此时的a是一个全局变量
1
2
3
4
5
6
7
8
9
10

# 1.3 函数的参数

# 函数参数语法

函数的参数,增加函数的 通用性,针对 相同的数据处理逻辑,能够 适应更多的数据:

  • 形参:定义 函数时,小括号中的参数,是用来接收参数用的,在函数内部 作为变量使用
  • 实参:调用 函数时,小括号中的参数,是用来把数据传递到 函数内部 用的
// 带参数的函数声明
function 函数名(形参1, 形参2 , 形参3...) { // 可以定义任意多的参数,用逗号分隔
  // 函数体
}
// 带参数的函数调用
函数名(实参1, 实参2, 实参3...); 
1
2
3
4
5
6
    // 参数就是 你要提供给该功能的数据
    // 比如你现在去买衣服 那你需要给客服提供你的身高和体重 然后客服会给你推荐相应的尺码
    // 你提供的这个数据 就叫做参数

    // 我们把这个事情映射到我们的代码中
    // 那就是买衣服是一个函数

    function shopping(money){
        // 我想根据提供的钱数  推荐一款手机
        // 这里拿到钱数 映射成代码的意思 就是 我函数外部 如何提供一个数据到函数内部
        // 那我们就需要使用参数
        // 比如我现在需要接收一个参数
        // 这里的这个money就是用来接收 我外面提供的数据  这个叫做形参 形式参数
        console.log(money);
    }

    // 现在我要买手机了
    shopping(2000);//这里的2000是实参 实际参数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

注意细节:

  • 调用的时候实参值是传递给形参的
  • 形参简单理解为:不用声明的变量
  • 实参和形参的多个参数之间用逗号(,)分隔

全局变量和局部变量:

  • 定义在函数内部的变量是局部变量
  • 定义在函数外部的变量是全局变量

# 1.4 函数的返回值

函数不仅仅可以有参数, 也可以有返回值

  • 使用return关键字来返回结果
  • 一旦在函数中执行return操作,那么当前函数会终止
  • 如果函数中没有使用 return语句 ,那么函数有默认的返回值:undefined
  • 如果函数使用 return语句,但是return后面没有任何值,那么函数的返回值也是:undefined
// 声明函数
function 函数名(){
    ...
    return  需要返回的值;
}
// 调用函数
函数名();    // 此时调用函数就可以得到函数体内return 后面的值
1
2
3
4
5
6
7

break ,continue ,return 的区别

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

# 1.5 匿名函数和具名函数

<script>
    // 匿名函数 就是没有名字的函数
    // 具名函数 就是有名字的函数
    function a(){
        console.log(1);
    }
    // 以上函数是具名函数

    var b=function(){

    }
    // 以上的右边 是一个匿名函数
</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
Last Updated: 12/25/2022, 10:02:14 PM