【javascript学习指南】Javascript中数组 、{ } 、Array()

更新时间:2017-07-26    来源:js教程    手机版     字体:

【www.bbyears.com--js教程】

一、JS中没有除数字外的字符索引数组
    当然!可以这样做,当结果不是你所想的
最常用的是array()
Array 对象用于在单个的变量中存储多个值。

创建 Array 对象的语法:

 代码如下 new Array();
new Array(size);
new Array(element0, element1, ..., elementn);


如:

 代码如下

var p = new Array();

p[0] = "第一个值";

p[1] = "第二个值";

p["h"] = "可以访问这个值";

以上几乎可PHP一样,但是p.length = 2;
要想循环输出Array中的值,只能
for(var key  in p){

  }

这样有个严重问题
Array中有个prototype属性,可以扩展Array对象的方法
如果这样

 代码如下 Array.prototype.next = function(){};

所有Array对象都会多一个索引值
next:function(){};
上面循环也会多打印一个你意想不到的值
那么,Array的规范是接近C语言中的array,


二、[ ]也就是new Array()
     它可以方便的创建多维数组


三、{ }是new Object()
    其实这个最接近PHP中的数组
可以说PHP中数组是集Hash Array于一体的


四、判断是否是array
   也许你会想到typeof
但是不管是以上谁创建的对象
应用typeof arr= ‘object’
应该这样判断

 代码如下

return  (arr.constructor==Array);

但是如果你之前应用
Array.prototype.constructor = function(){}


arr.constructor = function(){}


还是不可完全相信

五、arguments 不是数组
   arguments是当前执行的 function 对象返回一个arguments 对象。
function.arguments
function 参数是当前执行函数的名称,可以省略。
arguments包含一些附属属性arguments.callee、arguments.length
用两段代码描述它们

 代码如下

  function param(){

     var s="";

     for(var i=0,l=arguments.length;i

        s += "param"+ i+" : "+ arguments[i] + "n";

     }

     alert(s);

   }

   param(1,2,3);

function factorial(n){

  if (n <= 0)

  return 1;

  else

    return n * arguments.callee(n - 1)//等同于factorial(n-1)

}

alert(factorial(3));


看完上面你会想这不是数组嘛!不是

用for(var k in arguments)的方式遍历不出arguments[[0|1|2|...|n]
但有些地方需要数组这个特性,我必须把arguments转化为array
prototype.js的做法

 代码如下

var length = iterable.length, results = new Array(length);

  while (length--) results[length] = iterable[length];

  return results;

上面总结了这么多关于javascript数组的一些用法,以及数组中 [ ]、{ } 、Array() 的各种用法。

本文来源:http://www.bbyears.com/wangyezhizuo/34375.html

热门标签

更多>>

本类排行