函数...

初识函数

函数的概念

  • 把特定的代码片段抽取出来,成为独立运行的实体

 函数的好处

  1. 可以重复使用
  2. 提高代码的可读性
  3. 有利于程序的维护

 函数的分类

  • 分为系统函数(内置函数)和自定义函数

系统函数

  • 官方定义好的函数,可以直接调用
  • 如:  alert(),   isNaN(), console.log() ,document.write(), Boolean(), Math.pow()等 

自定义函数

  • 是用户自己定义的函数,  用户可以根据实际需求, 对特定的功能使用函数来封装

函数的定义和调用

  • 定义函数的关键字是 function

 声明式

定义语法:
    function 函数名(形参1,形参2,形参3,...){
        函数体
    }
调用:
    函数名(实参1,实参2,实参3...)

例:
    //计算两数和
    function fn(num1,num2){
        return num1+num2
    }
    var res = fn(10,20)
    console.log(res)

【注】
    声明式定义的函数,可以在定义之前进行调用,因为js会进行预解析
    例:
        //计算两数和
        var res = fn(10,20)
        console.log(res)
        function fn(num1,num2){
            return num1+num2
        }

赋值式

定义语法:
    var 函数名 = function(形参1,形参2,形参3,...){
        函数体  
    }

调用:
    函数名(实参1,实参2,..)

例:
    //计算两数和
    var fn = function(num1,num2){
        return num1+num2
    }
    var res = fn(10,20)
    console.log(res)
    
【注】
    只能在函数后面对函数进行调用

 构造函数创建函数

  • 通过构造函数new Function()
    语法:
        var 函数名 = new Function("形参1","形参2",...,"函数体"}
       
    调用:
        函数名(实参1,实参2,...)
    
    例:
        var show = new Function("a","b","c","return a+b+c")
        console.log(show(10,20,30))
    
    【注】 
        1、new Function的最后一个参数,是函数的函数体
        2、只能在定义函数之后,调用函数

注意事项

  1. 定义函数必须使用function关键字
  2. 函数名的命名规范与变量命名规范一致
  3. 形参:
    1. 默认值为undefined
    2. 是一个局部变量,只能在函数内部使用
  4. return关键字:
    1. 返回结果,并终止函数,在函数体中,return后面的代码不会被执行
    2. 函数体中不一定要有return,没有return就表示没有返回值
    3. 函数的返回值默认为undefined
  5. 实参:确定了形参的类型
  6. 函数只有被调用了才会执行

函数的参数

 形参和实参

  •  形参:形式参数,声明函数的时候写在小括号里面的参数
  •  实参:实际参数,在函数调用的时候需要传递实际有值得参数
  • 规则:
    1. 实参个数 = 形参个数 : 挨个传递
    2. 实参个数 > 形参个数 : 多于的实参直接丢弃
    3. 实参个数 < 形参个数 : 多的形参值默认为undefined

arguments 类数组对象

  1. 是一个伪数组,有下标,不具备数组方法 

  2. 它只能在函数内部出现

  3. 通过索引(下标)取值

    1. 取值的范围为0~arguments.length

    2. 取值方式arguments [ 索引 ( 下标 ) ]

  4. 作用:可以动态接收实参

 作用域和作用域链

变量的作用域

  • 作用域:变量作用的范围,可以分为全局变量和局部变量

全局变量

  • 在函数外面定义的变量

  • 在函数内部不使用var定义的变量

  • 作用范围为整个程序的执行范围

局部变量

  • 在函数内部通过var关键字定义的变量或者形参

  • 作用范围只在某个函数体内部

  • 在函数体内部,当局部变量与全局变量重名时,局部变量优先于全局变量

作用域链

  • 当函数内部访问某一个变量时候,首先去函数内部查找,如果内部没有,就向外层函数查找,如果外层函数,没有就向(浏览器像window)全局查找,这个"查找的过程"就叫做"作用域链"
  • 简单理解:内层环境中不断向外寻找变量和函数的过程
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值