(2)语法2:数组、函数、函数一些细节、匿名函数、动态函数

来源:互联网 发布:关系数据库中关系是指 编辑:程序博客网 时间:2024/06/05 16:52

一、数组
数组用于存储更多的数据,是一个容器
js中的数组定义的两种方式
特点:①长度可变
②元素的类型任意,建议使用数组时,存储同一类型的元素,方便操作(比如算术运算)
数组是js中的最常用容器,有很多功能,待函数处再详细了解
1)数组定义的第一种方式
var arr=[ ]; var arr={2,6,5};

  <script type="text/jscript">      var arr=[3,1,5,9];      alert("len:"+arr.length);      alert(typeof(arr));      arr[4]=54;      arr[5]="abc";      arr[6]=true;      for(var x=0;x<arr.length;x++)      {          document.write("arr["+x+"]="+arr[x]);          document.write("<br/>");      }</script>  

输出:
这里写图片描述
2)数组定义的第二种方式:使用了javascript中的Array对象来定义
var arr=new Array( );
var arr1=new Array( 5);//数组定义并且长度为5
var arr2=new Array(5,6,7);定义一个数组,元素为5,6,7
二、函数
函数:一个功能的封装体
定义功能需要两个明确:1)功能的结果 。2)功能实现中参与运算的未知的内容
格式:通过指定的关键字来定义。
function 函数名 (参数列表)
函数体;
return 返回值;//若没有具体的返回值,return省略
}
函数也是调用才能使用
直接在body内写调用就行

<script type="text/jscript">     function demo(){         alert("demo run");     }     demo();//调用     function add(a,b)//不用写变量var     {         return a+b;     }       var  c=add(2,3);     alert("c="+c); </script>

细节①:只要使用函数的名称,就是对这个函数的调用,(没有重载形式)函数中有个数组在对函数的参数进行存储,这个数组就是argument
注意也不允许重名, 如参数列表x和for中自定义的参数

function show(x,y)     {        // alert(arguments.length);         for(var a=0;a<arguments.length;a++)         {             document.write(arguments[a]);         }        // alert(x+":"+y);     }     show(3,2,5,1);//建议函数中定义几个参数,就传递几个实参

细节②函数名的含义

function getSum()     {         return 100;     }     var sum=getSum;//若写getSum(),则为函数调用     alert("sum="+sum);

这里写图片描述

这里写图片描述
js是基于对象的,所以函数也是对象,即函数对象(堆),函数名在栈中,函数名其中是个地址,指向了函数对象。在var sum=getSum;中,getSum的地址赋给了sum,sum就也指向了这个对象,然后alert输出的是字符串,此对象的字符串就是函数。
在Java中:
demo d=new demo();
System.out.println(d);//因为demo继承了Object类,所以打印会出现哈希码getClass().getName() + ‘@’ + Integer.toHexString(hashCode())
细节③:

function show_2()    {        alert("show2 run");    }alert(show_2());//第一个弹出的是:show_2 run  第二个弹出的是:undefined 因为函数没有返回值

三、动态函数:使用的是js中内置的一个对象Function
var function_name = new Function(arg1, arg2, …, argN, function_body)
在上面的形式中,每个 arg 都是一个参数,最后一个参数是函数主体(要执行的代码)。这些参数必须是字符串。
动态体现在该对象写什么函数体就是什么对象。

var add=new Function("x,y","var sum;sum=x+y;return sum") var he=add(4,8); alert("he="+he);

四、匿名函数
没有名字的函数,通常是函数的简写形式,需要一个对象指向这个函数

var add2=function(a,b){     return a+b; } alert(add2(7,8));它是如下的简写形式:function add3(a,b) {     return a+b; } var i=add3(3,5); alert(i);
原创粉丝点击