JavaScript 1.4 函数
1函数定义格式:
function functionname(){
这里是要执行的代码
}
2函数带返回值,带不带都行,使用return语句实现。
例一:
function myFunction(){
var x=5;return x;
}
例二:
function myFunction(a,b){
return a*b;
}
例三:仅仅用return退出
function myFunction(a,b){
if (a>b) {
return;
}
x=a+b
}
3.函数参数,格式
myFunction(argument1,argument2···){
}
4.关于参数
函数调用时的参数数目与类型,和函数定义不同时,解析器不报错。
原因:参数(调用时的,定义时的)在内部是用数组表示的,而不是参数名称。可以在函数体内通过arguments对象访问这个数组。
应用一:不显示的使用命名参数
function sayHi(){
alert(“Hi ”+arguments[0]+”,”+arguments[1]);
}
调用:sayHi(“Bill”,”Welcome!”);
结果:Hi Bill,Welcome!
应用二:通过arguments属性length,来对调用时不同参数进行不同操作。
function add(){
if(arguments.length==1){
alert(arguments[0]);
}
if(arguments.length==2){
alert(arguments[0]+arguments[1]);
}
}
调用:add(10); 结果:10
调用:add(10,20); 结果:30
应用三:arguments与命名参数一起使用
function add(var1,var2){
alert(var1+arguments[1]);
}
调用:add(10,20); 结果:30
补充:命名参数的值永远与arguments保持一致,虽然他们都拥有独立的内存空间。
例如:
function add(var1,var2){
arguments[0]=100;
alert(var1);
}
当调用add(10,20)时,10传递给var1和arguments[0],20传递给var2和arguments[1],且他们的值保持同步。所以结果显示为:100
5.JavaScript没有函数重载
所谓函数重载是指名字相同,但参数及函数体不同的函数。但由于JavaScript特殊的参数应用方法,实现了一定程度上的函数重载功能。
当JavaScript中函数被定义两次时,前面的被覆盖,只保留最后的函数定义。
6.局部变量和全局变量
1在函数外声明的变量是全局变量。var x=1;
2只在函数内声明的变量是局部变量:function add(){var x=1;}
注:在if for while的{}里的var x=1;不是局部变量,是全局变量。
3在函数内声明的不带var的变量是全局变量:function add(){ x=1;},但不推荐。
7.JavaScript 变量的生存期
JavaScript 变量的生命期从它们被声明的时间开始。
局部变量会在函数运行以后被删除。
全局变量会在页面关闭后被删除。