作用:可以封装任意多条语句,而且可以在任何地方,任何时候调用执行。
functionName是要定义的函数名,属于标识符。
函数的定义和调用:
//不带参数
function myFun(){
alert("我是一个函数");
}
myFun();
//带参数
function add(num1,num2){
var sum=num1+num2;
alert(sum);
}
add(3,4);
函数的返回值:任何函数通过返回语句,后面跟着返回的值来实现返回值。
function add(num1,num2){
var sum=num1+num2;
return sum;
}
document.write(add(3,4))
alert(add(3,6));
var s=add(-1,-9);
function myFun(arg){
if(isNaN(arg)){
return;
}
return arg*2;
}
document.write(myFun(3));
function myFun(arg){
if(isNaN(arg)){
return;
}
return arg*2;
}
document.write(myFun("abc"));
//undefined
说明:
- 函数会在执行完返回语句之后停止并立即退出。
- 返回语句也可以不带有任何返回值,用于提前停止函数执行有不需要返回值的情况。
arguments参数:
ECMAScript中的参数跟Java里的不一样,不在意参数个数和类型。原因是参数在函数的内部是由数组来表示的,而我们利用arguments这个对象可以访问到数组。
说明:
- arguments对象只是与数组类似,并不是Array的实例,不是真正意义上的数组。
- []语法访问它的每一个元素
- length属性确定传递参数的个数。
function inner(num1,num2){
document.write(num2);
}
inner(10);
//undefined
function inner(num1,num2){
//arguments具有跟数组一样的访问方法。
document.write(arguments.length);//2
document.write(arguments[0]);//10
document.write(arguments[2]);//undefined
}
inner(10,5);
求任意一组数的平均值:
function getAvg(){
var sum=0;
for(var i=0;i<arguments.length;i++){
sum+=arguments[i];
}
return sum/arguments.length;
}
var avg=getAvg(1,2,3,4,5);
document.write(avg);