JavaScript 函数

来源:互联网 发布:联合舰队 知乎 编辑:程序博客网 时间:2024/06/05 08:11

一、JavaScript函数的分类


  1、自定义函数(我们自己编写的函数),如:function funName(){}
  2、系统函数(JavaScript自带的函数),如alert函数。

二、函数的调用方式


  1、普通调用:functionName(实际参数...)
  2、通过指向函数的变量去调用:
      var myVar=函数名;
      myVar(实际参数...);

三、函数返回值


  1.当函数无明确返回值时,返回的值就是"undefined"。
  2.当函数有返回值时,返回值是什么就返回什么。

四、可变参数


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

五、动态函数


    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后面的括号里先是传递给函数的参数,然后用一个逗号(,)隔开然后是这个函数要执行的功能的代码
在Function对象后面的括号里的每一部分内容都必须是字符串形式的,也就是说都必须用引号(""或者是'')括起来。把一个字符串分成了若干个独立的字符串的优点就在于我们可以通过修改其中的某些字符串来随时改变函数的作用

六、匿名函数


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

    JS引擎调用一个函数时,是根据函数名来调用的,如果有多个函数名相同的函数,那么JS引擎则只认最后定义的那个,调用时以最后定义的那个函数为准!JS的函数没有专门的函数默认值的语法,但是可以不给参数传值,不传值的参数值就是undefined。

<!DOCTYPE html><html lang="en"><head>  <meta charset="UTF-8">  <title>js调试</title>  <script type="text/javascript">    //求和函数    function Sum(x, y)    {      //变参      if(arguments[2] != null)        return x+y+arguments[2];      //嵌套函数      function Sum2(x, y) {        return x+y;      }      return Sum2(x, y);    }    //衔接js响应    function linkrespond() {      alert("衔接js响应")    }    //事件响应    function eventrespond() {      alert("事件响应")    }  </script></head><body><!--衔接js响应--><a href="javascript:linkrespond()">衔接js响应</a><!--事件响应--><button onclick="eventrespond()">按钮</button><!--通用调用--><script type="text/javascript">  if(!isNaN(Sum(1, 2, 3)))//内置函数    document.writeln("1+2+3=" + Sum(1, 2, 3));  else    document.writeln("数字有误");  //动态函数  var args = "x, y";  var body = "return x-y";  var sub = new Function(args, body);  document.writeln("4-3=" + sub(4, 3));  //匿名函数  document.writeln("3+4=" + function (x, y) {return x+y;          }(3, 4));  var multi = function (x, y) {    return x*y;  };  document.writeln("3*4=" + multi(3, 4));</script></body></html>


0 0
原创粉丝点击