代码改变世界

第七章 函数

2013-08-03 17:10  xchit  阅读(324)  评论(0编辑  收藏  举报

一、函数声明

函数对任何语言来说都是一个核心的概念。通过函数可以封装任何多条语句,而且可以在任何地方、任何时候调用执行。ECMAScript中的函数使用function关键字来声明,后跟一组参数以及函数体。函数的基本语法如下所示:
function functionName(arg0,arg1,...,argn){
  statements
}
以下是一个函数示例:
function sayHi(name,message){
  alert('Hello'+name+','+message);
}
这个函数可以通过其函数名来调用;例如:
sayHi("Nich","how are you today?");
输入的结果是:"Hello Nich,how are you todya?".

二、return 返回值

带参和不带参的函数,都没有定义返回值,而是调用后直接执行的。实际上,任何函数都可以通过return语句跟后面的要返回的值来实现返回值。
function methodName(){ //没有参数的函数

  reutrn '我被返回了';      //通过return把函数的最终值返回

}
  alert(methdoName());    //调用函数会得到函数值,然后输出


function sum(num1,num2){     //有参数的函数

  reutrn num1+num2;     //通过return喊参数的值相加的和返回;

}
alert(sum(5,6)); //11函数返回的值

三、arguments对象

ECMAScript函数不介意传递进来多少参数,也不会因为参数不统一而错误。实际上,函数体内可以通过arguments对象来接收传递进来的参数。
function methodName(){

  returnarguments[0]+'|'+arguments[1]; //得到每次参数的值

 }
  alert(methodName(1,2,3,4,5,6)); //传递参数
arguments对象的length属性可以得到参数的数量。
function methodName(){


  returnarguments.length; //得到6

}
alert(methodName(1,2,3,4,5,6)); //传递参数
我们可以利用length这个属性,来智能的判断有多少参数,然后把参数进行合理的应用。比如,要实现一个加法运算,将所有传进来的数字累加,而数字的个数又不确定。
function methodName(){
  var sum=0;
  if(arguments.length==0)retur nsum; //如果没有参数,退出
  for(var i=0;i<arguments.length;i++){ //如果有,就累加
  sum=sum+arguments[i];
}
  return sum; //返回累加结果
}
alert(methodName(5,9,12));