Javascript里面函数基础理解与运用(五)

当我们需要重复使用一段代码的时候,我们可以使用函数来将代码封装到一个函数中,需要使用的时候直接调用就可以了!

函数

基础的两种定义方法

1.通过关键字function定义函数
  1. 定义完函数后函数不会立即执行,函数西药调用才可以执行里面的代码。
  2. 定义函数的时候,函数名后面的小括号不能省略
    <script>
        function 自定义函数名称() {
            逻辑代码(函数体)
        }
        自定义函数名称()//函数的调用
    </script>
2.函数的参数介绍
  1. 函数可以没有参数 函数名后面的小括号中什么都不写
  2. 如果函数中设置了参数,那么该函数就是一个参数的函数
    <script>
        function 函数名(形参, 形参....可以定义多个,记得使用逗号隔开){
            
        }
    </script>

函数中的形参其实就是一个变量(就是一个用来保存数据的容器)
3. 函数中参数的值来源于函数调用时候赋值的结果
4. 调用的时候,传递什么值,那么函数的形参的值就是什么
实列:

    <script>
        //给带参数的函数赋值
        function fn(a) {
            console.log(a);
        }
        //函数有几个形参,那么在调用的时候就写几个具体值
        fn(1);//在调用函数的时候传递的值叫函数的实参
        //在定义函数的时候是函数的形参
    </script>
  1. 实参给形参赋值时一 一对应的
  2. 函数外部是不能引用函数内部的代码的
3.函数的返回值

函数外部是无法访问函数内部的返回值
return返回值(是具体的一个值,也可以是一个变量)

  1. 定义一个变量接收return的返回值
	变量 = (函数)
  1. 如果我们希望在函数外部获取函数内部变量的值,那么需要给函数设置返回值
  2. 在函数中返回值,只会执行一个return;
  3. 函数中只能写一个return;
  4. 数组可以作为返回值;
4. 匿名函数

本质:匿名函数也是一个函数,没有写函数的名字
代码:
1.可以给该匿名函数赋值给一个变量,通过变量的名字+()就可以执行该函数

    <script>
        //匿名函数
        //1.可以给该匿名函数赋值给一个变量,通过变量的名字+()就可以执行该函数
        var fn = function () {

        }
        fn()
        //2.在对象中,方法就是一个匿名函数
    </script>
5. 自调用函数

自调用函数:本质上也是一个函数,函数自己调用自己
语法:

    <script>
        //如何实现函数自己调用自己
        //语法:
        (函数)();
        //注意:自调用函数可以是匿名函数,也可以是命名函数
    </script>
    <script>
        (function (a, b) {
            console.log(a + b);
        }(1, 2))//结果为3
    </script>
6. arguments

arguments是函数中功能很强大的对象,只能在函数中使用。
1. 在函数中如果我们无法明确函数到底有多少个参数,那么我们就可以通过arguments动态的获取用户传递过来的参数
2. arguments本质就是一个数组,该数组里面保存的是用户输入的实参的值

    <script>
        //arguments对象
        function fn() {
            console.log(arguments)
        }
        fn(1, 'asd')
    </script>
7. 作用域
  • 作用域:代码能够发生作用的范围
  • 全局作用域
  1. 函数外部的区域
  2. 在全局作用域中定义的变量
  3. 全局作用域全局任何作用域生效
  • 局部作用域
  1. 在函数内部形成的一个封闭的区域
  2. 在局部作用域中定义变量
  3. 局部变量只能在当前作用域中使用
    <script>
        //全局作用域
        function fn() {
            //局部作用域
            console.log(1)
        }
    </script>
8.作用域链
  1. 在程序中将多个作用域连接到一块形成的一个虚拟的链状结构
  2. 当程序在执行的过程中,首先要在当前作用域中查找相关的信息,如果当前作用域没有,那么程序会沿着作用域链向上一级继续查找,依次类推,直到找到为止。
9.代码域解析

代码提前做好要执行的准备

  1. 域解析只会提升变量名,不会提升赋值
       var a = 25;
       function ab() {
           alert(a);//此时的a是undefined
           var a = 10;
           //因为域解析把var a提升到了最前面,但是不会提升赋值,只会提升变量
       }
       ab();
  1. 域解析遇到函数会先将函数的声明提升到当前作用域的开始位置,不包括函数的调用
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值