函数
关键字:function
格式:
function functionName(arg0,arg1,arg2,...,argn){
statements
}
function sun(num1,num2){
var result = num1+num2;
return result;
}
- 在函数中,return语句后面的任何语句都不会执行.
- 如果在函数中return语句后面没有任何返回值,则返回undefined,这种情况可以用在需要提前停止函数又不需要返回值的情况下.
函数的参数
- 命名的的参数只是提供便利,但不是必须的.
- 在函数体内可以通过arguments对象来访问这个参数数组,可以使用方括号来访问他的每一个元素:arguments[0],arguments[1],…
functon howManyArgs(){
alert(arguments.length);
}
howManyArgs("string",45);//2--->表示有两个参数
howManyArgs();//0--->表示没有参数
howManyArgs(1);//1--->表示一个参数
function doAdd(){
if(arguments.length == 1){
alert(arguments[0] +10 );
} else if(arguments.length == 2){
alert(arguments[0]+arguments[1]);
}
}
doAdd(10);//20
doAdd(10,20);//30
- arguments对象可以和参数一起使用
function doAdd(num1,num2){
if(arguments.length == 1){
alert(num1+20);
}else if(arguments.length == 2){
alert(arguments[0]+num2);
}
}
doAdd(10,20);//30
在上述代码中arguments[0]和num1的值相同,可以互换使用.
- arguments对象的值永远和对应命名参数的值保持同步
function doAdd(num1,num2){
arguments[1] = 10;
alert(argulments[0]+num2);
}
每次执行这个函数库都会将第二个参数重写为10,因为arguments对象中的值会自动映射到对应的命名参数,修改了arguments[1],也就是修改了num2.
但是,并不代表读取这两个值会访问相同的内存空间.它们的内存空间是独立的,但是值会同步.
- 没有传递值的命名参数会被自动赋予undefinded值
函数没有重载
如果两个函数名相同,后定义的函数会覆盖先定义的函数