实现特定功能的已命名代码块,或者叫做某个功能模块的封装,一段可以重复执行的代码段,一次编译可多次执行。
- 节省了代码
- 代码的重用性提高了,减少代码冗余
- 提高开发效率,
- 页面模块化,简洁
- 提高程序的可维护性
函数的分类
系统函数
系统内置的函数
自定义函数
function 函数名(参数1,参数2,...参数n){
函数体
}
函数参数最多有26个
变量的作用域
全局变量
在函数外声明,在变量声明以后的,直到整个脚本结束前都可以使用,(在函数内部不能使用),全局变量是在页面加载完毕后系统收回的变量,全局变量只作用在本页面
是通过 global 来声明的。
局部变量
函数内的普通的变量都是局部变量,有效范围只在函数内有效
静态变量
在内存不清除前(退出前)一直存在的变量;静态变量只能声明在函数中,不能在函数外声明。
只在函数内有效,函数下次被调用时,静态变量会保留上次执行的结果;
参数变量
参数传递:调用函数时将实参列表传递到函数定义时的形参列表中去;
(将实参列表的值赋值给形参列表)
-
按数值传递:将实参中的数据或者变量复制一个副本传递到形参中,形参在函数内改变,不影响原实参的数据
-
按地址传递:就是将实参变量的地址传递给形参,如果在函数内对形参做了修改,那么实参也会做相对应的修改;
func_num_args():返回一共有多少参数
func_get_args():接收一个数组,数组里面包含所有的参数
函数的嵌套
节约代码空间,逻辑清晰,多个函数的相互嵌套。
function a(){
function b(){
.....
}
}
变量函数
多个函数时,可以将函数名存到一个变量中,这种方法就叫做变量函数;
可以动态的调用不同的函数,节省了判断条件的语句和代码,节省时间
递归函数
在函数体内,调用本函数(调用自己)