为完成某一功能的程序指令(语句)的集合,称为函数

时间:2022-12-28 阅读:1534 评论:0 作者:zhushican


1.函数的定义

为完成某一功能的程序指令(语句)的集合,称为函数。函数使用function关键字来定义。它可以用在函数定义表达式或者函数声明语句里。在这两种形式中,函数定义都从function关键字开始,其后跟随这些部分

  1. 1)  函数名称标识符:函数明川是函数声明语句必须的部分。它的用途就像是变量的名字,新定义的函数对象会赋值给这个变量。对函数定义表达式来说,这个名字是可选的:如果存在,该名字只存在函数中,并代指函数对象本身。

  2. 2)  一对圆括号:其中包含由0个或者多个逗号隔开的标识符组成的列表。这些标识符是函数的参数明川,它们就像函数体中的局部变量一样。

  3. 3)  一对花括号,里边包含0条或者多条javascript语句。这些语句构成了函数体:一旦调用函数,就会执行这些语句。

  4. 2.函数的分类

  5. 1)  自定义函数(我们自己编写的函数),如:functionfunName(){}。

  6. 2)  系统函数(JavaScript自带的函数),如alert函数。

  7. 3.函数的调用方式

  8. 1)   普通调用:functionName(实际参数...)。

  9. 2)   通过指向函数的变量去调用:

 

var myVar=函数名;

 

myVar(实际参数...);

 

4.函数的返回值

  1. 1)   当函数无明确返回值时,返回的值就是"undefined"。

  2. 2)   当函数有返回值时,返回值是什么就返回什么。

 

<script>

 

    var  str="window.alert('JavaScript');";

 

     eval(str);//eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。

 

    /*自定义函数*/

 

    function  test(str){

 

         alert(str);

 

    }

 

     window.alert(test);//输出test函数的定义

 

    //函数的调用方式1

 

    test("'JavaScript'");

 

    //函数的调用方式2

 

    var  myFunction=test;

 

     myFunction("函数");

 

window.alert(myFunction);

 

    /*当函数无明确返回值时,返回的也是值 "undefined"*/

 

    var  retVal=test("test");//test函数执行完之后,并没有返回值,因此retVal变量接收到的返回值结果是undefined

 

     alert("retVal="+retVal);//输出undefined

 

</script>

 

5.函数的深入使用

  1. 1)   可变参数

函数的参数列表可以是任意多个,并且数据类型可以是任意的类型,JavaScript的函数天然支持可变参数,JavaScript有一个arguments变量可以访问所有传到函数内部的参数。

 

<script>

 

    /*add函数是一个参数可变的函数*/

 

    function  add(){

 

        var  result=0;

 

for(var i=0;i<arguments.length;i++){

 

             //alert(arguments[i]);

 

             result+=arguments[i];

 

        }

 

        return  result;

 

    }

 

     alert("add(1,2,3)="+add(1,2,3));//调用add函数时传入3个参数

 

     alert("add(1,2,3,4,5,6)="+add(1,2,3,4,5,6));//调用add函数时传入6个参数

 

    alert("add()="+add());//调用add函数时不传入参数

 

     alert("add(1,\"HelloWorld\")="+add(1,"HelloWorld"));//调用add函数时传入不同类型的参数</ <script>

 
  1. 2)   javascript创建动态函数

JavaScript支持创建动态函数,动态函数必须用Function对象来定义(Function是javascript中的一个对象,是固定不变的,规定Function对象的"F"必须大写,当是function的时候,我们知道是定义函数的时候所使用的一个关键字:function funName(x,y),当是Function的时候(F大写的时候),我们知道是javascript中的对象)。

创建动态函数的基本格式:var 变量名 = new Function("参数1","参数2","参数n","执行语句");

使用new关键字(new是javascript中一个关键字,也是固定的,我们在定义动态函数的时候必须要使用new来创建这个Function对象)

我们先定义一个变量: var 变量名,在这里,变量名是随便的,然后我们再使用new关键字创建一个Function对象,然后再把这个对象赋值给这个任意的变量,也就是:var 变量名 = new Function("参数1","参数2","参数n","执行语句");Function后面的括号里先是传递给函数的参数,然后用一个逗号(,)隔开然后是这个函数要执行的功能的代码

 

<script>

 

    var square =  new Function ("x","y","var sum ; sum = x+y;return  sum;");

 

     alert("square(2,3)的结果是:"+square(2,3));

 

</script>

 
  1. 3)   匿名函数

直接声明一个匿名函数,立即使用。用匿名函数的好处就是省得定义一个用一次就不用的函数,而且免了命名冲突的问题,js中没有命名空间的概念,因此很容易函数名字冲突,一旦命名冲突以最后声明的为准。

 

<script>

 

    var f1 =  function(i1, i2) { return i1 + i2 };

 

     alert(f1(1,2));

 

</script>

 
  1. 4)   JavaScript不支持函数的重载

JavaScript没有方法重载的说法,如果两个方法名字一样,即使参数个数不一样,那么后面定义的就会覆盖前面定义,调用方法时永远是调用后定义的那个。

 

<script type="text/javascript">

 

    function  Test(a){

 

        alert(a);

 

    }

 

    function  Test(a,b){

 

         alert("HelloWorld!");

 

    }

 

    function  Test(a,b){

 

alert(a+" "+b);

 

    }

 

    Test(20);//调用的是最后定义的那个Test方法

 

     Test(30,50);//调用的是最后定义的那个Test方法

 

</script>


本文链接: http://www.zh-xm.com/post/153.html 转载请注明出处!

相关文章 是不是在找它?!