1 概念:把完成特定功能的一段代码抽象出来,使之成为程序中的一个独立实体,起个名字。
作用:
2 函数的分类
(2.1)系统内置函数
(2.2)自定义函数
(2.3)事件驱动函数
2.3.1概念:在和页面交互中所使用的函数,该函数被称为事件驱动函数
2.3.2事件:和页面交互的行为称之为事件
2.3.3事件驱动函数的使用:
节点对象.on+事件名 = 事件处理程序
3 函数的定义
function 函数名(参数1,参数2,…..){
函数体
}
注:见名思意,函数名必须体现其功能
函数调用:
格式:函数名();
无参数无返回值的函数:
function 函数名(){
函数体
}
有参数无返回值的函数:
function 函数名(参数1,参数2…){
函数体
}
有参数有返回值的函数:
function 函数名(参数1,参数2…){
函数体
return 表达式;
}
注:函数运行的时候,如果遇到return关键字,函数会终止
封装函数的步骤
1.分析不确定的值
2.将不确定的值声明形参
3.函数名和形参都要见名思意
注:一般在传值机制中,只能把实参传递给形参而不能将形参传递给实参。
4 arguments
每一个函数内部都有一个arguments,系统内置
arguments用来存储实际传入的参数
属性:
arguments.length 输出当前存储的参数的个数
访问某一个数据:
arguments[下标]
注:优先使用形参,除非特殊情况
补充:
1.作用域:
任何程序在运行的时候都要占用内存空间,函数调用的时候也要占用内存空间
垃圾回收机制:调用函数的时候,系统会分配对应的空间给这个函数使用
当函数使用完毕后,这个内存空间释放,还给系统
注:在函数内部声明的变量和形参是属于当前函数的内存空间的
内存管理机制:在函数中声明的变量和形参,会随着函数调用而被创建,随着函数调用的结束而被摧毁
局部作用域:在这个函数或大括号中声明的变量或形参,只能在这个大括号中使用
全局作用域:整个页面
2.函数的递归
递归:
(1)函数自己调用自己
(2)一般情况下有参数
(3)一般情况下有return
递归的写法:
sum(100) = sum(99)+100