一、函数
1、函数实际上就是可以作为一个逻辑单元对待的代码块
2、作用:使代码更加简洁,提高重用性
3、地位:每一个项目的代码,大约有95%在函数里
4、函数的定义
function 函数名([x,y,z,…]){
[return ex];
}
4.1函数名
①在同一个页面中,函数名必须唯一
②参数部分选填,参数用逗号隔开,最多可添加255个参数
③return 选填
4.2关于return
①没有return 函数只代表一些列的逻辑运算
②有return 函数返回一个特定值,此时函数可以作为一个值参与到运算中
③return后则结束函数
5、函数的调用 函数定义后不会自动执行,需要在特定的位置调用函数
6、函数的参数
形参:形式参数,就是函数名后小括号里的内容
实参:在调用函数时小括号里的内容
传参:将实参传达给形参,用形参表示形参
arguments 函数的参数是作为一个数组返回的
二、闭包
1、作用域
全局变量,函数外边
局部变量,函数里面
注:局部变量必须写var,否则作为全局变量处理
不建议在局部变量与全局变量同名
局部变量声明一定要加var
2、匿名函数(自调用)
匿名函数就是没有名字的函数
js的普通函数在代码执行前就被加载到了作用域中,即函数的调用不一定要写在函数的声明后边
js的匿名函数则是代码块执行到了这一块才开始起作用
形式:
var fun = function(){}
(function(){})()
如何从外部获取局部变量(闭包)
定义:有权访问另一个函数作用域中变量的函数
简单的说就是在函数内部定义一个新的函数
1、var n=8.9;
function f1(){
alert(n);
}
f1();
2、function f1(){
var n=8.9;
}
alert(n);
3、function f1(){
var n=8.9;
function f2(){
alert(n);
}
}
4、function f1(){
var n=8.9;
function f2(){
alert(n);
}
return f2;
}
var result = f1();
result();
作用:让局部变量数据持久化