函数(方法)
关键字:function
声明式函数,又叫函数的声明
function test(){
语句
}
表达式函数
var test = function () {
语句
}
var test = new Function( );
- 重复声明一个函数,后面的函数会覆盖前面的.
- return返回值,没有return的时候,返回为undefined.
- 函数的属性: name : 函数名 / length:返回参数的个数
匿名函数的调用
(function(){
}());
(function(){
})();
- 匿名函数只能调用一次,不能反复调用
函数一等公民
- 可以使用其他数据类型的地方就可以使用函数.
函数名的提升
- Js引擎将函数名视同变量名,当声明function函数时,会自动提升到代码头部 @!只有声明式才会提升
- 声明式函数解析的同时完成执行,表达式函数是先解析,再执行代码
- 表达式函数是在赋值的时候才会把函数表达式交给变量.
- 不同script块中引用函数,定义函数的代码要在引用函数之前.
作用域
- 全局作用域
- 通过函数划分局部作用域
作用域链:
先在自身作用域内部搜索所需数据,再往上一级作用域搜寻数据.
tips
1. var定义局部变量,不加var定义全局变量
2. 函数内部使用的变量在函数声明的时候已经确定了它的作用域
参数
值传递
针对原始的数据类型,只是将值传入函数方法中不会被改变
址传递
针对引用类型,将地址传入函数中,原始数值会被改变.
通常情况下函数里的所有变量在函数执行会自动销毁,目的是为了释放内存空间.