• 函数类型:有参函数、无参函数、匿名函数、回调函数、立即执行函数、闭包函数、递归函数


    1、有参函数:函数定义时,带有参数的函数

    设置函数参数的默认值:

    (1)直接在函数定义位置的小括号内进行赋值

    (2)低版本默认值的处理(在函数内部判断该参数是否有默认值,若没有,赋值初始值)

    第1种默认值赋值:

    第2种默认值赋值:

    2、无参函数:函数定义时没有带参数的函数

    3、匿名函数:函数定义时没有函数名称的函数

    例如:

    4、回调函数:若函数A的参数是一个函数B,则称函数B为函数A的回调函数

    例如:

    【函数执行规律】

    主程序遇到函数,进入到函数的内部进行执行,执行完毕,将返回值返回到函数调用的位置,继续向下执行

     5、立即执行函数:函数声明后,立即被调用

    例如:

    6、闭包函数:闭包函数的返回值是一个函数,返回的函数保留了函数定义时的作用域

    例如:

    7、递归函数:在函数内部调用自身

    递归函数应用场景:

    (1)计算累加、阶乘

    (2)数组单元的计算等场景

    例如:

     

    注意:函数默认的返回值是undefined

     ==================Function类型=========================

    1、定义函数的3种方式:

    (1)使用function关键字定义

    (2)使用函数表达式定义函数

    (3)使用new Function()构造函数定义函数

    2、函数内部属性:

    在函数内部,有两个特殊的对象:arguments和this

    (1)callee属性,该属性是一个指针,指向拥有这个arguments对象的函数(  eg:arguments.callee()  )

    (2)this引用的是函数执行的环境对象——或者也可以说是this值(当在网页的全局作用域中调用函数时,this对象引用的就是window)

    (3)ES5规范化了函数对象的另一个属性:caller;这个属性保存着调用当前函数的函数的引用(eg: arguments.callee.caller )

    注意:

    (1)函数实际上是对象,每个函数都是Function类型的实例,而且都与其他引用类型一样具有属性和方法。

    (2)函数名实际上是一个指向函数对象的指针。

    (3)函数是对象,函数名是指针!

    3、函数属性和方法

    属性:length和prototype

    length:该属性表示函数希望接受的命名参数个数

    prototype:对应ECMAScript中的引用类型而言,prototype是保存它们所有实例方法的真正所在。prototype属性是不可枚举的,因此使用for-in无法发现

  • 相关阅读:
    Spyder | 关于报错No module named 'PyQt5.QtWebKitWidgets'
    Java基础(11) | 接口
    Java基础(10) | 抽象
    Java基础(9) | 继承
    Java基础(7) | String
    Java基础(6) | ArrayList
    CodeBlocks17.12配置GNU GCC + 汉化
    图片懒加载
    Mac安装Mysql 超详细(转载)
    剑指 Offer 03. 数组中重复的数字
  • 原文地址:https://www.cnblogs.com/sherryStudy/p/function_type.html
Copyright © 2020-2023  润新知