js函数

  1。函数

        +是一个JS中的复杂数据类型,叫做 Function

        +什么是函数?

           =>是一个"盒子",承载一段代码

           =>需要的时候,可以把"盒子"内的代码拿出来执行

    2。函数的两个阶段

        2-1。函数定义阶段

           =>声明式函数:function函数名(){代码}

           =>赋值式函数: var函数名= function(){代码}

           =>注意:函数定义阶段,书写在函数体内的代码是不执行的

        2-2。函数调用阶段

           =>函数名()

           =>每书写一次,就会把函数体内的代码从上到下的执行一遍

    3。函数的参数

        3-1。形参

           =>书写在函数定义阶段的小括号内

           =>可以书写多个,多个之间使用逗号(,)分隔

           =>就是一个定义在函数内部的变量,只能在函数内部使用

           =>形参的值由函数调用时的实参决定

        3-2。实参

           =>书写在函数调用阶段的小括号内

           =>可以书写多个,多个之间使用逗号(,)分隔

           =>就是在按照顺序依次给每一个形参进行赋值

    4。函数内的注意

        4-1。调用上的注意

           =>声明式函数可以先调用,也可以后调用

           =>赋值式函数只能后调用,先调用会报错

        4-2。参数个数上的注意

           =>一样多:按照从左到右的顺序依次给每一个形参赋值

           =〉形参多:前面的按照顺序依次赋值,多出来的形参因为没有实参赋值,在函数内使用的时候就是undefined

           =>实参多:前面的按照顺序依次赋值,多出来的实参因为没有形参接受,不能再函数内直接使用

    5. arguments

        =>是一个函数内天生自带的变量

        =>是一个"盒子",是一个承载数据的"盒子"

        =>承载的就是所有的实参

      5-1.arguments 的索引

        -> arguments 内的所有数据按照“序号"进行排列的

        ->我们管"序号"叫做索引或者下标

        ->索引(下标):从0开始,依次+1

      5-2。访问arguments 内的数据

        ->利用索引进行访问

        ->语法:arguments[索引]

        ->如果arguments 内有该索引,那么就是该索引位置的数据

        ->如果 arguments内没有该索引,那么就是 undefined

      5-3. arguments 的长度

        ->语法:arguments.length

        ->得到的是一个数字,表示 arguments内有多少个数据,其实就是多少个实参

      5-4。遍历arguments

        ->遍历:从头到尾访问到每一个arguments 中的数据

        ->利用 for循环来进行遍历

           +因为arguments 的索引是一组有规律的数字

           +又因为循环可以给我们提供一组有规律的数字

           +我们就可以使用循环提供的一组有规律的数字来当做索引访问arguments内的每一个数据

        例如:for(var i =0;i<arguments.length;i++){

            //在循环内,可以把循环控制变量i当做索引来使用

            //arguments[i]就是arguments 内的每一个数据

        }

    6,函数的返回值

        =>给函数创造一个执行后的结果

        =>语法:return xxx

        =>这个函数执行完毕的结果,就是书写在return后面的内容

    7,打断函数

       =>使用return关键字

       =>当代码执行到return时,会直接结束函数

       =>return后面的函数不再执行了

    8。作用域

       =>什么是作用域:一个变量(变量名和函数名)的生效范围

       =>主要提供了三个机制

       =>作用域的分类

         ->全局作用域:每一个页面打开就是一个全局作用域

         ->私有作用域:**只有函数生成私有作用域**

       =>作用域的上下级关系

        ->写在哪一个作用域下的函数,就是哪一个作用域的子级作用域

       8-1。变量定义机制

        ->定义在哪一个作用域内的变量

        ->就是哪一个作用域的私有变量

        ->只能在该作用域及其后代作用域内使用

      8-2。变量赋值机制

       ->当你需要给一个变量赋值的时候

       ->自己作用域内有,直接给自己的赋值

       ->自己的没有,就给父级作用域的赋值

       ->如果还没有,就给再父级作用域的赋值

       ->以此类推直到全局作用域都没有

       ->那么把这个变量定义为全局变量在进行赋值

      8-3。变量访问机制

        ->当你需要获取一个变量的值的时候

        ->首先在自己作用域内查找,如果有,直接使用,停止查找

        ->如果没有,去到父级作用域查找,如果有直接使用

        ->如果还没有,去到再父级作用域查找

        ->以此类推,直到全局作用域都没有,那么直接报错

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值